fix(userModuleAccess): small return fixes

This commit is contained in:
Matthieu Haineault 2025-11-28 10:01:59 -05:00
parent 42060ad9b4
commit f499abbb78
4 changed files with 26 additions and 11 deletions

View File

@ -1,6 +1,5 @@
import { DisplayLanguage, PreferencesDto } from "../dtos/preferences.dto";
import { PrismaService } from "src/prisma/prisma.service";
import { Preferences } from "@prisma/client";
import { Injectable } from "@nestjs/common";
import { Result } from "src/common/errors/result-error.factory";
import { EmailToIdResolver } from "src/common/mappers/email-id.mapper";

View File

@ -5,6 +5,6 @@ export class ModuleAccess {
@IsBoolean() timesheets_approval!: boolean;
@IsBoolean() employee_list!: boolean;
@IsBoolean() employee_management!: boolean;
@IsBoolean() personnal_profile!: boolean;
@IsBoolean() personal_profile!: boolean;
@IsBoolean() dashboard!: boolean;
}

View File

@ -34,7 +34,7 @@ export class AccessGetService {
timesheets_approval: access.timesheets_approval,
employee_list: access.employee_list,
employee_management: access.employee_management,
personnal_profile: access.personal_profile,
personal_profile: access.personal_profile,
dashboard: access.dashboard,
};
return { success: true, data: granted_access }

View File

@ -11,7 +11,7 @@ export class AccessUpdateService {
private readonly emailResolver: EmailToIdResolver,
) { }
async updateModuleAccess(email: string, dto: ModuleAccess, employee_email?: string): Promise<Result<boolean, string>> {
async updateModuleAccess(email: string, dto: ModuleAccess, employee_email?: string): Promise<Result<ModuleAccess, string>> {
const account_email = employee_email ?? email;
const user_id = await this.emailResolver.resolveUserIdWithEmail(account_email);
if (!user_id.success) return { success: false, error: 'EMPLOYEE_NOT_FOUND' };
@ -30,21 +30,29 @@ export class AccessUpdateService {
});
if (!orignal_access) return { success: false, error: 'MODULE_ACCESS_NOT_FOUND' };
await this.prisma.userModuleAccess.update({
const updated_access:ModuleAccess = await this.prisma.userModuleAccess.update({
where: { id: orignal_access.id },
data: {
timesheets: dto.timesheets,
timesheets_approval: dto.timesheets_approval,
employee_list: dto.employee_list,
employee_management: dto.employee_management,
personal_profile: dto.personnal_profile,
personal_profile: dto.personal_profile,
dashboard: dto.dashboard,
},
select: {
timesheets: true,
timesheets_approval: true,
employee_list: true,
employee_management: true,
personal_profile: true,
dashboard: true,
}
})
return { success: true, data: true };
return { success: true, data: updated_access };
}
async revokeModuleAccess(email: string, employee_email?: string): Promise<Result<boolean, string>> {
async revokeModuleAccess(email: string, employee_email?: string): Promise<Result<ModuleAccess, string>> {
const account_email = employee_email ?? email;
const user_id = await this.emailResolver.resolveUserIdWithEmail(account_email);
if (!user_id.success) return { success: false, error: 'EMPLOYEE_NOT_FOUND' };
@ -55,7 +63,7 @@ export class AccessUpdateService {
});
if (!access) return { success: false, error: 'MODULE_ACCESS_NOT_FOUND' };
await this.prisma.userModuleAccess.update({
const revoked_access: ModuleAccess = await this.prisma.userModuleAccess.update({
where: { id: access.id },
data: {
timesheets: false,
@ -63,10 +71,18 @@ export class AccessUpdateService {
employee_list: false,
employee_management: false,
personal_profile: false,
dashboard: true,
dashboard: false,
},
select: {
timesheets: true,
timesheets_approval: true,
employee_list: true,
employee_management: true,
personal_profile: true,
dashboard: true,
}
});
return { success: true, data: true };
return { success: true, data: revoked_access };
}
}