feat(api): add schedule series delete endpoint
This commit is contained in:
@ -341,4 +341,44 @@ export class ScheduleController {
|
||||
return ReturnHelper.errorResponse(res, 400, 401, Language.lang.failed_insert, err.message);
|
||||
}
|
||||
}
|
||||
|
||||
static async delete(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
|
||||
/*
|
||||
#swagger.tags = ['Schedule']
|
||||
#swagger.security = [{ "bearerAuth": [] }]
|
||||
#swagger.parameters['id'] = { in: 'path', required: true, type: 'string' }
|
||||
#swagger.parameters['hard'] = { in: 'path', description: 'Is Hard Delete', required: false, type: 'boolean' }
|
||||
#swagger.responses[200] = {
|
||||
description: 'Schedule series deleted',
|
||||
schema: { status: true, code: 200, message: 'success', data: {} }
|
||||
}
|
||||
*/
|
||||
try {
|
||||
const schema = Joi.object().keys({
|
||||
id: Joi.string().uuid().required().label("ID"),
|
||||
hard: Joi.alternatives()
|
||||
.try(Joi.boolean(), Joi.string().valid("", "true", "false", "1", "0"))
|
||||
.optional()
|
||||
.label("Is hard delete?"),
|
||||
});
|
||||
|
||||
const param: { id: string; hard?: boolean | string } = await schema.validateAsync(req.params);
|
||||
|
||||
const isHardDelete =
|
||||
param.hard === true || param.hard === "true" || param.hard === "1";
|
||||
|
||||
const actor = req.auth?.data?.name || "system";
|
||||
const affected = await ScheduleModel.deleteSeries(param.id, isHardDelete, actor);
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user