UNPKG

authenzify

Version:

server to manage authentication authorization of users and more

77 lines (66 loc) 2 kB
import { generatePermissionsGroupId } from '../../../util/record-id-prefixes.js' import { verifyExistence } from '../../../util/util.js' const fnList = ['find', 'findOne', 'insertOne', 'updateOne'] export class MongoPermissionsGroupsService { #modelsCollections constructor(modelsCollections) { verifyExistence(modelsCollections.PermissionsGroups, fnList) this.#modelsCollections = modelsCollections } async findPermissionsGroupsByNames({ tenantId, names }) { const existingPermissionsGroups = await this.#modelsCollections.PermissionsGroups.find({ tenantId, name: { $in: names }, }).toArray() return existingPermissionsGroups } async findGroup({ id, tenantId }) { const group = await this.#modelsCollections.PermissionsGroups.findOne({ tenantId, id, }) return group } async findGroupsByTenantId(tenantId) { const group = await this.#modelsCollections.PermissionsGroups.find({ tenantId, }).toArray() return group } async createGroup(permissionsGroupDetails) { const id = generatePermissionsGroupId() const now = new Date() const created = await this.#modelsCollections.PermissionsGroups.insertOne({ id, _id: id, createdAt: now, updatedAt: now, ...permissionsGroupDetails, }) const permissionsGroup = await this.#modelsCollections.PermissionsGroups.findOne({ id: created?.insertedId, }) return permissionsGroup } async findGroups({ tenantId, filter }) { const permissionsGroups = await this.#modelsCollections.PermissionsGroups.find({ ...filter, tenantId, }).toArray() return permissionsGroups } async deleteGroup({ id, tenantId }) { const permissionsGroup = await this.#modelsCollections.PermissionsGroups.updateOne( { id, tenantId, }, { $set: { isDeleted: true } }, ) return permissionsGroup } }