import BaseService from "@Services/BaseService"; import "reflect-metadata"; import { Service } from "typedi"; import UsersRepository from "@Repositories/UsersRepository"; import User from "le-coffre-resources/dist/SuperAdmin"; import { Prisma, Users } from "@prisma/client"; @Service() export default class UsersService extends BaseService { constructor(private userRepository: UsersRepository) { super(); } /** * @description : Get all users * @throws {Error} If users cannot be get */ public get(query: Prisma.UsersFindManyArgs) { return this.userRepository.findMany(query); } /** * @description : Create a user * @throws {Error} If user couldn't be created */ public create(userEntity: User): Promise { return this.userRepository.create(userEntity); } /** * @description : Modify a user * @throws {Error} If user modification failed */ public update(uid: string, userEntity: User): Promise { return this.userRepository.update(uid, userEntity); } /** * @description : Modify a user check date * @throws {Error} If user modification failed * @deprecate */ public updateCheckedAt(uid: string): Promise { return this.userRepository.updateCheckedAt(uid); } /** * @description : Delete a user * @throws {Error} If user modification failed */ public delete(uid: string): Promise { return this.userRepository.delete(uid); } /** * @description : Get a user by uid * @throws {Error} If user cannot be get by uid */ public getByUid(uid: string, query?: Prisma.UsersInclude) { return this.userRepository.findOneByUid(uid, query); } /** * @description : Get a user by uid with office * @throws {Error} If user cannot be get by uid */ public getByUidWithOffice(uid: string) { return this.userRepository.findOneByUidWithOffice(uid); } /** * @description : Get a user by uid with role * @throws {Error} If user cannot be get by uid */ public getByUidWithRole(uid: string) { return this.userRepository.findOneByUidWithRole(uid); } /** * @description : Get a user by uid * @throws {Error} If user cannot be get by uid */ public getByProvider(providerName: string, id: string) { return this.userRepository.findOneByProvider(providerName, id); } /** * @description : Get users to be checked with IdNot API */ public getUsersToBeChecked() { return this.userRepository.findManyToCheck(); } }