diff --git a/src/controllers/user_roles.ts b/src/controllers/user_roles.ts index 3af4958..3d8c9e8 100644 --- a/src/controllers/user_roles.ts +++ b/src/controllers/user_roles.ts @@ -4,13 +4,12 @@ import { OrmHelper } from "../helpers/orm"; import Joi from "joi"; import { ILogObj, Logger } from "tslog"; import { Language } from "../langs/lang"; -import { Paging } from "entity"; +import { Paging, User, UserRole } from "entity"; import CommonHelper from "../helpers/common"; import { Status } from "entity"; import { RoleList } from "entity"; import * as fastcsv from 'fast-csv'; import dayjs from "dayjs"; -import { UserRole } from "entity"; const log: Logger = new Logger({ name: '[UserRoleController]', type: 'pretty' }); @@ -359,14 +358,21 @@ export class UserRoleController { const param: UserRole = await schema.validateAsync(req.params); - const repo = OrmHelper.DB.getRepository(UserRole); + const repo_role = OrmHelper.DB.getRepository(UserRole); + const repo_user = OrmHelper.DB.getRepository(User); - const affected = (await repo.softDelete({ id: param.id })).affected; + const check_used = await repo_user.findOneBy({ id_role: param.id }) - if (affected > 0) { - return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); + if (check_used == null) { + const affected = (await repo_role.softDelete({ id: param.id })).affected; + + if (affected > 0) { + return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); + } else { + return ReturnHelper.errorResponse(res, 404, 401, Language.lang.failed_not_found, ""); + } } else { - return ReturnHelper.errorResponse(res, 404, 401, Language.lang.failed_not_found, ""); + return ReturnHelper.errorResponse(res, 404, 402, Language.lang.failed_related, ""); } } catch (e: unknown) { log.error(e); diff --git a/src/langs/json/en.json b/src/langs/json/en.json index 79622bf..c7944d6 100644 --- a/src/langs/json/en.json +++ b/src/langs/json/en.json @@ -30,5 +30,6 @@ "failed_expired_token": "Token has been expired", "failed_token": "Your session has been expired, please re-login", "failed_add_point": "Add point failed, please try again later", - "failed_logout": "Logout has been failed, please try again later" + "failed_logout": "Logout has been failed, please try again later", + "failed_related": "Data has been NOT successfully saved, please check related data" } diff --git a/src/langs/lang.ts b/src/langs/lang.ts index 4abb320..eff0e60 100644 --- a/src/langs/lang.ts +++ b/src/langs/lang.ts @@ -34,6 +34,7 @@ interface LanguageValue { failed_token?: string; failed_add_point?: string; failed_logout?: string; + failed_related?: string; //login success_login?: string;