diff --git a/src/controllers/administrativu.ts b/src/controllers/administrativu.ts index eeec32a..cc8ebfe 100644 --- a/src/controllers/administrativu.ts +++ b/src/controllers/administrativu.ts @@ -325,17 +325,24 @@ export class AdministrativuController { 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') + id: Joi.string().uuid().required().label('ID'), + hard: Joi.bool().optional().allow('').label('Is hard delete?') }); - const param: Administrativu = await schema.validateAsync(req.params); + const param: { id: string, hard: boolean } = await schema.validateAsync(req.params); const repo = OrmHelper.DB.getRepository(Administrativu); - const affected = (await repo.softDelete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); diff --git a/src/controllers/aldeia.ts b/src/controllers/aldeia.ts index 4f05b8b..535e470 100644 --- a/src/controllers/aldeia.ts +++ b/src/controllers/aldeia.ts @@ -325,17 +325,24 @@ export class AldeiaController { 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') + id: Joi.string().uuid().required().label('ID'), + hard: Joi.bool().optional().allow('').label('Is hard delete?') }); - const param: Aldeia = await schema.validateAsync(req.params); + const param: { id: string, hard: boolean } = await schema.validateAsync(req.params); const repo = OrmHelper.DB.getRepository(Aldeia); - const affected = (await repo.softDelete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); diff --git a/src/controllers/branch.ts b/src/controllers/branch.ts index 72c4c17..2b75028 100644 --- a/src/controllers/branch.ts +++ b/src/controllers/branch.ts @@ -325,17 +325,24 @@ export class BranchController { 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') + id: Joi.string().uuid().required().label('ID'), + hard: Joi.bool().optional().allow('').label('Is hard delete?') }); - const param: Branch = await schema.validateAsync(req.params); + const param: { id: string, hard: boolean } = await schema.validateAsync(req.params); const repo = OrmHelper.DB.getRepository(Branch); - const affected = (await repo.softDelete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); diff --git a/src/controllers/categories.ts b/src/controllers/categories.ts index 4e89226..61e3e89 100644 --- a/src/controllers/categories.ts +++ b/src/controllers/categories.ts @@ -234,17 +234,24 @@ export class CategoryController { 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') + id: Joi.string().uuid().required().label('ID'), + hard: Joi.bool().optional().allow('').label('Is hard delete?') }); - const param: Product = await schema.validateAsync(req.params); + const param: { id: string, hard: boolean } = await schema.validateAsync(req.params); const repo = OrmHelper.DB.getRepository(Product); - const affected = (await repo.softDelete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); diff --git a/src/controllers/class_economi.ts b/src/controllers/class_economi.ts index 1ac2300..d2702fd 100644 --- a/src/controllers/class_economi.ts +++ b/src/controllers/class_economi.ts @@ -325,17 +325,24 @@ export class ClassEconomiController { 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') + id: Joi.string().uuid().required().label('ID'), + hard: Joi.bool().optional().allow('').label('Is hard delete?') }); - const param: ClassEconomi = await schema.validateAsync(req.params); + const param: { id: string, hard: boolean } = await schema.validateAsync(req.params); const repo = OrmHelper.DB.getRepository(ClassEconomi); - const affected = (await repo.softDelete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); diff --git a/src/controllers/district.ts b/src/controllers/district.ts index d12afc2..b71c2a0 100644 --- a/src/controllers/district.ts +++ b/src/controllers/district.ts @@ -325,17 +325,24 @@ export class DistrictController { 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') + id: Joi.string().uuid().required().label('ID'), + hard: Joi.bool().optional().allow('').label('Is hard delete?') }); - const param: District = await schema.validateAsync(req.params); + const param: { id: string, hard: boolean } = await schema.validateAsync(req.params); const repo = OrmHelper.DB.getRepository(District); - const affected = (await repo.softDelete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); diff --git a/src/controllers/income_tier.ts b/src/controllers/income_tier.ts index eed69ba..51f54b3 100644 --- a/src/controllers/income_tier.ts +++ b/src/controllers/income_tier.ts @@ -325,17 +325,24 @@ export class IncomeTierController { 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') + id: Joi.string().uuid().required().label('ID'), + hard: Joi.bool().optional().allow('').label('Is hard delete?') }); - const param: IncomeTier = await schema.validateAsync(req.params); + const param: { id: string, hard: boolean } = await schema.validateAsync(req.params); const repo = OrmHelper.DB.getRepository(IncomeTier); - const affected = (await repo.softDelete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); diff --git a/src/controllers/menu.ts b/src/controllers/menu.ts index c266406..bed27f1 100644 --- a/src/controllers/menu.ts +++ b/src/controllers/menu.ts @@ -395,17 +395,24 @@ export class MenuController { 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') + id: Joi.string().uuid().required().label('ID'), + hard: Joi.bool().optional().allow('').label('Is hard delete?') }); - const param: Menu = await schema.validateAsync(req.params); + const param: { id: string, hard: boolean } = await schema.validateAsync(req.params); const repo = OrmHelper.DB.getRepository(Menu); - const affected = (await repo.softDelete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); diff --git a/src/controllers/munisipo.ts b/src/controllers/munisipo.ts index 1f72eeb..c202e76 100644 --- a/src/controllers/munisipo.ts +++ b/src/controllers/munisipo.ts @@ -325,17 +325,24 @@ export class MunisipoController { 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') + id: Joi.string().uuid().required().label('ID'), + hard: Joi.bool().optional().allow('').label('Is hard delete?') }); - const param: Munisipo = await schema.validateAsync(req.params); + const param: { id: string, hard: boolean } = await schema.validateAsync(req.params); const repo = OrmHelper.DB.getRepository(Munisipo); - const affected = (await repo.softDelete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); diff --git a/src/controllers/product.ts b/src/controllers/product.ts index 2e95e36..7d24ec1 100644 --- a/src/controllers/product.ts +++ b/src/controllers/product.ts @@ -329,17 +329,24 @@ export class ProductController { 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') + id: Joi.string().uuid().required().label('ID'), + hard: Joi.bool().optional().allow('').label('Is hard delete?') }); - const param: Product = await schema.validateAsync(req.params); + const param: { id: string, hard: boolean } = await schema.validateAsync(req.params); const repo = OrmHelper.DB.getRepository(Product); - const affected = (await repo.softDelete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); diff --git a/src/controllers/suco.ts b/src/controllers/suco.ts index 81ce5aa..6dc3df3 100644 --- a/src/controllers/suco.ts +++ b/src/controllers/suco.ts @@ -325,17 +325,24 @@ export class SucoController { 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') + id: Joi.string().uuid().required().label('ID'), + hard: Joi.bool().optional().allow('').label('Is hard delete?') }); - const param: Suco = await schema.validateAsync(req.params); + const param: { id: string, hard: boolean } = await schema.validateAsync(req.params); const repo = OrmHelper.DB.getRepository(Suco); - const affected = (await repo.softDelete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); diff --git a/src/routes/private.ts b/src/routes/private.ts index 16c3fb6..e0ae962 100644 --- a/src/routes/private.ts +++ b/src/routes/private.ts @@ -24,70 +24,70 @@ export class RoutePrivate { app.get('/api/branch/export', BranchController.export) app.post('/api/branch/create', BranchController.create) app.put('/api/branch/update/:id', BranchController.update) - app.delete('/api/branch/delete/:id', BranchController.delete) + app.delete('/api/branch/delete/:id/:hard', BranchController.delete) app.put('/api/branch/restore/:id', BranchController.restore) app.get('/api/product/list', ProductController.list) app.get('/api/product/export', ProductController.export) app.post('/api/product/create', ProductController.create) app.put('/api/product/update/:id', ProductController.update) - app.delete('/api/product/delete/:id', ProductController.delete) + app.delete('/api/product/delete/:id/:hard', ProductController.delete) app.put('/api/product/restore/:id', ProductController.restore) app.get('/api/menu/list', MenuController.list) app.get('/api/menu/export', MenuController.export) app.post('/api/menu/create', MenuController.create) app.put('/api/menu/update/:id', MenuController.update) - app.delete('/api/menu/delete/:id', MenuController.delete) + app.delete('/api/menu/delete/:id/:hard', MenuController.delete) app.put('/api/menu/restore/:id', MenuController.restore) app.get('/api/administrativu/list', AdministrativuController.list) app.get('/api/administrativu/export', AdministrativuController.export) app.post('/api/administrativu/create', AdministrativuController.create) app.put('/api/administrativu/update/:id', AdministrativuController.update) - app.delete('/api/administrativu/delete/:id', AdministrativuController.delete) + app.delete('/api/administrativu/delete/:id/:hard', AdministrativuController.delete) app.put('/api/administrativu/restore/:id', AdministrativuController.restore) app.get('/api/aldeia/list', AldeiaController.list) app.get('/api/aldeia/export', AldeiaController.export) app.post('/api/aldeia/create', AldeiaController.create) app.put('/api/aldeia/update/:id', AldeiaController.update) - app.delete('/api/aldeia/delete/:id', AldeiaController.delete) + app.delete('/api/aldeia/delete/:id/:hard', AldeiaController.delete) app.put('/api/aldeia/restore/:id', AldeiaController.restore) app.get('/api/class_economi/list', ClassEconomiController.list) app.get('/api/class_economi/export', ClassEconomiController.export) app.post('/api/class_economi/create', ClassEconomiController.create) app.put('/api/class_economi/update/:id', ClassEconomiController.update) - app.delete('/api/class_economi/delete/:id', ClassEconomiController.delete) + app.delete('/api/class_economi/delete/:id/:hard', ClassEconomiController.delete) app.put('/api/class_economi/restore/:id', ClassEconomiController.restore) app.get('/api/district/list', DistrictController.list) app.get('/api/district/export', DistrictController.export) app.post('/api/district/create', DistrictController.create) app.put('/api/district/update/:id', DistrictController.update) - app.delete('/api/district/delete/:id', DistrictController.delete) + app.delete('/api/district/delete/:id/:hard', DistrictController.delete) app.put('/api/district/restore/:id', DistrictController.restore) app.get('/api/income_tier/list', IncomeTierController.list) app.get('/api/income_tier/export', IncomeTierController.export) app.post('/api/income_tier/create', IncomeTierController.create) app.put('/api/income_tier/update/:id', IncomeTierController.update) - app.delete('/api/income_tier/delete/:id', IncomeTierController.delete) + app.delete('/api/income_tier/delete/:id/:hard', IncomeTierController.delete) app.put('/api/income_tier/restore/:id', IncomeTierController.restore) app.get('/api/munisipo/list', MunisipoController.list) app.get('/api/munisipo/export', MunisipoController.export) app.post('/api/munisipo/create', MunisipoController.create) app.put('/api/munisipo/update/:id', MunisipoController.update) - app.delete('/api/munisipo/delete/:id', MunisipoController.delete) + app.delete('/api/munisipo/delete/:id/:hard', MunisipoController.delete) app.put('/api/munisipo/restore/:id', MunisipoController.restore) app.get('/api/suco/list', SucoController.list) app.get('/api/suco/export', SucoController.export) app.post('/api/suco/create', SucoController.create) app.put('/api/suco/update/:id', SucoController.update) - app.delete('/api/suco/delete/:id', SucoController.delete) + app.delete('/api/suco/delete/:id/:hard', SucoController.delete) app.put('/api/suco/restore/:id', SucoController.restore) app.get('/api/category/list', CategoryController.list)