authenzify
Version:
server to manage authentication authorization of users and more
77 lines (66 loc) • 2 kB
JavaScript
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
}
}