UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

46 lines (45 loc) 1.72 kB
import type { Connection, FilterQuery } from 'mongoose'; import * as factory from '../factory'; import { IDocType } from './mongoose/schemas/role'; type IRole = IDocType; type IKeyOfProjection = keyof IDocType; /** * IAMロールリポジトリ */ export declare class RoleRepo { private readonly roleModel; constructor(connection: Connection); static CREATE_MONGO_CONDITIONS(params: factory.role.organizationRole.ISearchConditions): FilterQuery<IDocType>[]; projectFields(params: factory.role.organizationRole.ISearchConditions, inclusion: IKeyOfProjection[]): Promise<IRole[]>; /** * distinctコマンドを使用して、ロールから権限を検索する */ findUniquePermissionsByRoleName(params: { roleName: { $in: string[]; }; }): Promise<string[]>; addPermissionIfNotExists(params: { roleName: { $eq: factory.role.organizationRole.RoleName; }; permission: string; }): Promise<(import("mongoose").FlattenMaps<IDocType> & { _id: import("mongoose").Types.ObjectId; }) | null>; removePermissionIfExists(params: { roleName: { $eq: factory.role.organizationRole.RoleName; }; permission: string; }): Promise<(import("mongoose").FlattenMaps<IDocType> & { _id: import("mongoose").Types.ObjectId; }) | null>; addMember(params: Pick<IRole, 'member' | 'memberOf' | 'roleName'>): Promise<(import("mongoose").FlattenMaps<IDocType> & { _id: import("mongoose").Types.ObjectId; }) | null>; create(params: Pick<IRole, 'member' | 'memberOf' | 'permissions' | 'roleName'>): Promise<{ id: string; }>; } export {};