UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

76 lines (75 loc) 2.72 kB
import { Connection } from 'mongoose'; import * as factory from '../factory'; import TransactionModel from './mongoose/model/transaction'; /** * 取引リポジトリー */ export declare class MongoRepository { readonly transactionModel: typeof TransactionModel; constructor(connection: Connection); static CREATE_MONGO_CONDITIONS(params: factory.transaction.ISearchConditions<factory.transactionType>): any[]; /** * 取引を開始する */ start<T extends factory.transactionType>(params: factory.transaction.IStartParams<T>): Promise<factory.transaction.ITransaction<T>>; /** * IDで取引を取得する */ findById<T extends factory.transactionType>(params: { typeOf: T; id: string; }): Promise<factory.transaction.ITransaction<T>>; /** * 進行中の取引を取得する */ findInProgressById<T extends factory.transactionType>(params: { typeOf: T; id: string; }): Promise<factory.transaction.ITransaction<T>>; /** * 取引を確定する */ confirm<T extends factory.transactionType>(params: { typeOf: T; id: string; result: factory.transaction.IResult<T>; potentialActions: factory.transaction.IPotentialActions<T>; }): Promise<factory.transaction.ITransaction<T>>; /** * タスク未エクスポートの取引をひとつ取得してエクスポートを開始する */ startExportTasks<T extends factory.transactionType>(params: { typeOf: T; status: factory.transactionStatusType; }): Promise<factory.transaction.ITransaction<T> | null>; /** * タスクエクスポートリトライ * todo updatedAtを基準にしているが、タスクエクスポートトライ日時を持たせた方が安全か? */ reexportTasks(params: { intervalInMinutes: number; }): Promise<void>; /** * set task status exported by transaction id * IDでタスクをエクスポート済に変更する */ setTasksExportedById(params: { id: string; }): Promise<void>; /** * 取引を期限切れにする */ makeExpired(): Promise<void>; /** * 取引を中止する */ cancel<T extends factory.transactionType>(params: { typeOf: T; id: string; }): Promise<factory.transaction.ITransaction<T>>; count<T extends factory.transactionType>(params: factory.transaction.ISearchConditions<T>): Promise<number>; /** * 取引を検索する */ search<T extends factory.transactionType>(params: factory.transaction.ISearchConditions<T>): Promise<factory.transaction.ITransaction<T>[]>; }