diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index 299d67a6..9b117424 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -174,13 +174,13 @@ export class ReportController extends Controller { async registryOfficer( @Query() node?: number, @Query() nodeId?: string, - @Query() posTypeName?: string, - @Query() posLevelName?: string, + @Query() posType?: string, + @Query() posLevel?: string, @Query() position?: string, @Query() posExecutiveName?: string, @Query() gender?: string, - @Query() relationship?: string, - @Query() degree?: string, + @Query() status?: string, + @Query() education?: string, @Query() startDateAppoint?: Date, @Query() endDateAppoint?: Date, @Query() ageMin?: number, @@ -251,58 +251,60 @@ export class ReportController extends Controller { }) .andWhere(IsLeavecondition.join(" AND "), parameters) .andWhere( - new Brackets((qb) => { - qb.orWhere( - posTypeName != null && posTypeName != "" - ? "registryOfficer.posTypeName LIKE :posTypeName" - : "1=1", - { - posTypeName: `%${posTypeName}%`, - }, - ); - qb.orWhere( - posLevelName != null && posLevelName != "" - ? "registryOfficer.posLevelName LIKE :posLevelName" - : "1=1", - { - posLevelName: `%${posLevelName}%`, - }, - ); - qb.orWhere( - position != null && position != "" ? "registryOfficer.position LIKE :position" : "1=1", - { - position: `%${position}%`, - }, - ); - qb.orWhere( - posExecutiveName != null && posExecutiveName != "" - ? "registryOfficer.posExecutiveName LIKE :posExecutiveName" - : "1=1", - { - posExecutiveName: `%${posExecutiveName}%`, - }, - ); - qb.orWhere( - gender != null && gender != "" ? "registryOfficer.gender LIKE :gender" : "1=1", - { - gender: `%${gender}%`, - }, - ); - qb.orWhere( - relationship != null && relationship != "" - ? "registryOfficer.relationship LIKE :relationship" - : "1=1", - { - relationship: `%${relationship}%`, - }, - ); - qb.orWhere( - degree != null && degree != "" ? "registryOfficer.degree LIKE :degree" : "1=1", - { - degree: `%${degree}%`, - }, - ); - }), + posType != null && posType != "" + ? "registryOfficer.posTypeName LIKE :posTypeName" + : "1=1", + { + posTypeName: `%${posType}%`, + } + ) + .andWhere( + posLevel != null && posLevel != "" + ? "registryOfficer.posLevelName LIKE :posLevelName" + : "1=1", + { + posLevelName: `%${posLevel}%`, + } + ) + .andWhere( + position != null && position != "" + ? "registryOfficer.position LIKE :position" + : "1=1", + { + position: `%${position}%`, + } + ) + .andWhere( + posExecutiveName != null && posExecutiveName != "" + ? "registryOfficer.posExecutiveName LIKE :posExecutiveName" + : "1=1", + { + posExecutiveName: `%${posExecutiveName}%`, + } + ) + .andWhere( + gender != null && gender != "" + ? "registryOfficer.gender LIKE :gender" + : "1=1", + { + gender: `%${gender}%`, + } + ) + .andWhere( + status != null && status != "" + ? "registryOfficer.relationship LIKE :relationship" + : "1=1", + { + relationship: `%${status}%`, + } + ) + .andWhere( + education != null && education != "" + ? "registryOfficer.degree LIKE :degree" + : "1=1", + { + degree: `%${education}%`, + } ) .orderBy(`registryOfficer.${sortBy}`, sort) .getManyAndCount(); @@ -469,12 +471,12 @@ export class ReportController extends Controller { async registryEmployee( @Query() node?: number, @Query() nodeId?: string, - @Query() posTypeName?: string, - @Query() posLevelName?: string, + @Query() posType?: string, + @Query() posLevel?: string, @Query() position?: string, @Query() gender?: string, - @Query() relationship?: string, - @Query() degree?: string, + @Query() status?: string, + @Query() education?: string, @Query() startDateAppoint?: Date, @Query() endDateAppoint?: Date, @Query() isProbation?: boolean, @@ -545,50 +547,52 @@ export class ReportController extends Controller { .andWhere(IsLeavecondition.join(" AND "), parameters) .andWhere("registryEmployee.employeeClass = 'PERM'") .andWhere( - new Brackets((qb) => { - qb.orWhere( - posTypeName != null && posTypeName != "" - ? "registryEmployee.posTypeName LIKE :posTypeName" - : "1=1", - { - posTypeName: `%${posTypeName}%`, - }, - ); - qb.orWhere( - posLevelName != null && posLevelName != "" - ? "registryEmployee.posLevelName LIKE :posLevelName" - : "1=1", - { - posLevelName: `%${posLevelName}%`, - }, - ); - qb.orWhere( - position != null && position != "" ? "registryEmployee.position LIKE :position" : "1=1", - { - position: `%${position}%`, - }, - ); - qb.orWhere( - gender != null && gender != "" ? "registryEmployee.gender LIKE :gender" : "1=1", - { - gender: `%${gender}%`, - }, - ); - qb.orWhere( - relationship != null && relationship != "" - ? "registryEmployee.relationship LIKE :relationship" - : "1=1", - { - relationship: `%${relationship}%`, - }, - ); - qb.orWhere( - degree != null && degree != "" ? "registryEmployee.degree LIKE :degree" : "1=1", - { - degree: `%${degree}%`, - }, - ); - }), + posType != null && posType != "" + ? "registryOfficer.posTypeName LIKE :posTypeName" + : "1=1", + { + posTypeName: `%${posType}%`, + } + ) + .andWhere( + posLevel != null && posLevel != "" + ? "registryOfficer.posLevelName LIKE :posLevelName" + : "1=1", + { + posLevelName: `%${posLevel}%`, + } + ) + .andWhere( + position != null && position != "" + ? "registryOfficer.position LIKE :position" + : "1=1", + { + position: `%${position}%`, + } + ) + .andWhere( + gender != null && gender != "" + ? "registryOfficer.gender LIKE :gender" + : "1=1", + { + gender: `%${gender}%`, + } + ) + .andWhere( + status != null && status != "" + ? "registryOfficer.relationship LIKE :relationship" + : "1=1", + { + relationship: `%${status}%`, + } + ) + .andWhere( + education != null && education != "" + ? "registryOfficer.degree LIKE :degree" + : "1=1", + { + degree: `%${education}%`, + } ) .orderBy(`registryEmployee.${sortBy}`, sort) .getManyAndCount(); diff --git a/src/controllers/UserController.ts b/src/controllers/UserController.ts index be68be2a..4dd90dbf 100644 --- a/src/controllers/UserController.ts +++ b/src/controllers/UserController.ts @@ -830,18 +830,4 @@ export class KeycloakController extends Controller { return result; } - @Post("user/reset-password") - async forgetPassword( - @Request() request: { user: { sub: string; preferred_username: string } }, - @Body() - body: { - username: string; - }, - ) { - const result = await resetPassword(body.username); - if (!result) { - throw new Error("Failed. Cannot change password."); - } - return result; - } } diff --git a/src/keycloak/index.ts b/src/keycloak/index.ts index d3c9611d..1297b70f 100644 --- a/src/keycloak/index.ts +++ b/src/keycloak/index.ts @@ -767,26 +767,26 @@ export async function changeUserPassword(userId: string, newPassword: string) { // Function to reset password export async function resetPassword(username: string) { try { - if (!API_KEY || !AUTH_ACCOUNT_SECRET) { - throw new Error("KC_CLIENT_ID and KC_SECRET are required to used this feature."); - } - const body = new URLSearchParams(); - body.append("client_id", "gettoken"); - body.append("client_secret", AUTH_ACCOUNT_SECRET?.toString()); - body.append("grant_type", "client_credentials"); - const tokenResponse = await fetch(`${process.env.KC_URL}/realms/${process.env.KC_REALMS}/protocol/openid-connect/token`, { - method: "POST", - headers: { - "Content-Type": "application/x-www-form-urlencoded", - api_key: API_KEY, - }, - body: body - }); - if (!tokenResponse.ok) { - throw new Error("Failed to get admin token"); - } - const tokenData = await tokenResponse.json(); - const adminToken = tokenData.access_token; + // if (!API_KEY || !AUTH_ACCOUNT_SECRET) { + // throw new Error("KC_CLIENT_ID and KC_SECRET are required to used this feature."); + // } + // const body = new URLSearchParams(); + // body.append("client_id", "gettoken"); + // body.append("client_secret", AUTH_ACCOUNT_SECRET?.toString()); + // body.append("grant_type", "client_credentials"); + // const tokenResponse = await fetch(`${process.env.KC_URL}/realms/${process.env.KC_REALMS}/protocol/openid-connect/token`, { + // method: "POST", + // headers: { + // "Content-Type": "application/x-www-form-urlencoded", + // api_key: API_KEY, + // }, + // body: body + // }); + // if (!tokenResponse.ok) { + // throw new Error("Failed to get admin token"); + // } + // const tokenData = await tokenResponse.json(); + // const adminToken = tokenData.access_token; const users = await fetch(`${KC_URL}/admin/realms/${KC_REALMS}/users?email=${encodeURIComponent(username)}`, { headers: {