UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

59 lines (58 loc) 2.09 kB
import type { Connection, FilterQuery } from 'mongoose'; import * as factory from '../factory'; type IFindValidOneResult = Pick<factory.authorization.IAuthorization, 'object' | 'typeOf' | 'audience' | 'issuedBy'> & { id: string; }; type ISaveParams = Pick<factory.authorization.IAuthorization, 'audience' | 'author' | 'code' | 'issuedBy' | 'project' | 'validFrom' | 'object'> & { expiresInSeconds: number; }; type IPublishParams = Pick<ISaveParams, 'audience' | 'author' | 'expiresInSeconds' | 'issuedBy' | 'object' | 'project' | 'validFrom'>; type IKeyOfProjection = keyof factory.authorization.IAuthorization; /** * 承認リポジトリ */ export declare class AuthorizationRepo { private readonly authorizationModel; constructor(connection: Connection); static CREATE_MONGO_CONDITIONS(params: factory.authorization.ISearchConditions): FilterQuery<factory.authorization.IAuthorization>[]; /** * コードを発行する */ publish(params: IPublishParams[]): Promise<factory.authorization.IAuthorization[]>; /** * コードで有効な承認を参照する */ findValidOneByCode(params: { project: { id: string; }; code: string; }): Promise<IFindValidOneResult>; /** * 有効な承認を参照する */ findValidOneById(params: { project: { id: string; }; id: string; }): Promise<Pick<IFindValidOneResult, 'object'>>; projectFields(params: factory.authorization.ISearchConditions, inclusion: IKeyOfProjection[]): Promise<(factory.authorization.IAuthorization & { id: string; })[]>; /** * 有効期限を一定期間過ぎた承認を削除する */ deleteValidUntilPassedCertainPeriod(params: { $lt: Date; }): Promise<void>; unsetUnnecessaryFields(params: { filter: FilterQuery<factory.authorization.IAuthorization>; $unset: any; }): Promise<import("mongoose").UpdateWriteOpResult>; /** * コードを保管する */ private save; } export {};