@chevre/domain
Version:
Chevre Domain Library for Node.js
59 lines (58 loc) • 2.09 kB
TypeScript
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 {};