From 99d74452dfc8b51ed2cb59472343e79a9b5f4530 Mon Sep 17 00:00:00 2001 From: avicenan Date: Thu, 28 May 2026 11:49:23 +0900 Subject: [PATCH] fix card key set --- src/controllers/card_key_sets.ts | 42 +++++++++++++------------------- src/routes/private.ts | 1 - 2 files changed, 17 insertions(+), 26 deletions(-) diff --git a/src/controllers/card_key_sets.ts b/src/controllers/card_key_sets.ts index ba6a582..252010f 100644 --- a/src/controllers/card_key_sets.ts +++ b/src/controllers/card_key_sets.ts @@ -115,9 +115,16 @@ export class CardKeySetsController { entity.read_basic_key = param.read_basic_key; entity.write_update_key = param.write_update_key; entity.read_sensitive_key = param.read_sensitive_key; - entity.is_active = param.is_active; + entity.is_active = true; await queryRunner.manager.save(entity); + // Set the previous data (all other records) to is_active = false + await queryRunner.manager.createQueryBuilder() + .update(CardKeySet) + .set({ is_active: false }) + .where("id != :id", { id: entity.id }) + .execute(); + await queryRunner.commitTransaction(); return ReturnHelper.successResponseAny(res, 200, Language.lang.success_insert, entity); @@ -194,11 +201,16 @@ export class CardKeySetsController { entity.read_basic_key = param.read_basic_key; entity.write_update_key = param.write_update_key; entity.read_sensitive_key = param.read_sensitive_key; - if (param.is_active !== undefined) { - entity.is_active = param.is_active; - } + entity.is_active = true; await queryRunner.manager.save(entity); + // Set all other records to is_active = false + await queryRunner.manager.createQueryBuilder() + .update(CardKeySet) + .set({ is_active: false }) + .where("id != :id", { id: entity.id }) + .execute(); + await queryRunner.commitTransaction(); return ReturnHelper.successResponseAny(res, 200, Language.lang.success_update, entity); @@ -219,26 +231,6 @@ export class CardKeySetsController { #swagger.parameters['id'] = { in: 'path', required: true, type: 'string' } #swagger.parameters['hard'] = { in: 'path', description: 'Is Hard Delete', required: false, type: 'boolean' } */ - try { - const schema = Joi.object().keys({ - id: Joi.string().uuid().required().label("ID"), - hard: Joi.bool().optional().allow("").label("Is hard delete?"), - }); - - const param: { id: string; hard: boolean } = await schema.validateAsync(req.params); - - const repo = OrmHelper.DB.getRepository(CardKeySet); - const affected = (await repo.delete({ id: param.id })).affected ?? 0; - - if (affected > 0) { - return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); - } else { - return ReturnHelper.errorResponse(res, 404, 401, Language.lang.failed_not_found, ""); - } - } catch (e: unknown) { - log.error(e); - const err = e as Error; - return ReturnHelper.errorResponse(res, 500, 402, Language.lang.failed_delete, err.message); - } + return ReturnHelper.errorResponse(res, 400, 400, "Deletion is not allowed for Card Key Sets", "Deletion is disabled"); } } diff --git a/src/routes/private.ts b/src/routes/private.ts index 67ba924..1702765 100644 --- a/src/routes/private.ts +++ b/src/routes/private.ts @@ -94,7 +94,6 @@ export class RoutePrivate { app.post("/api/card-key-sets/create", CardKeySetsController.create); app.get("/api/card-key-sets/detail/:id", CardKeySetsController.detail); app.put("/api/card-key-sets/update/:id", CardKeySetsController.update); - app.delete("/api/card-key-sets/delete/:id/:hard", CardKeySetsController.delete); app.get("/api/menu/list", MenuController.list); app.get("/api/menu/export", MenuController.export);