Validation error folder number already taken

This commit is contained in:
Vincent Alamelle 2023-05-16 15:03:31 +02:00
parent 68cba7f401
commit 8441c06e9b
3 changed files with 13 additions and 1 deletions

View File

@ -47,7 +47,14 @@ export default class OfficeFoldersController extends ApiController {
//init OfficeFolder resource with request body values //init OfficeFolder resource with request body values
const officeFolderRessource = OfficeFolder.hydrate<OfficeFolder>(req.body); const officeFolderRessource = OfficeFolder.hydrate<OfficeFolder>(req.body);
await officeFolderRessource.validateOrReject?.({ groups: ["createFolder"] , forbidUnknownValues: false }); await officeFolderRessource.validateOrReject?.({ groups: ["createFolder"] , forbidUnknownValues: false });
//validate folder
const officeFolderNumberExist = await this.officeFoldersService.get({where: {folder_number: officeFolderRessource.folder_number}});
if (officeFolderNumberExist) {
this.httpValidationError(response, "Folder number already taken");
return;
}
//call service to get prisma entity //call service to get prisma entity
const officeFolderEntity = await this.officeFoldersService.create(officeFolderRessource); const officeFolderEntity = await this.officeFoldersService.create(officeFolderRessource);
//Hydrate ressource with prisma entity //Hydrate ressource with prisma entity

View File

@ -20,6 +20,10 @@ export default abstract class BaseController {
return this.httpResponse(response, HttpCodes.BAD_REQUEST, responseData); return this.httpResponse(response, HttpCodes.BAD_REQUEST, responseData);
} }
protected httpValidationError(response: Response, responseData: IResponseData = "Http Validation Error") {
return this.httpResponse(response, HttpCodes.VALIDATION_ERROR, responseData);
}
protected httpNotFoundRequest(response: Response, responseData: IResponseData = "Not Found") { protected httpNotFoundRequest(response: Response, responseData: IResponseData = "Not Found") {
return this.httpResponse(response, HttpCodes.NOT_FOUND, responseData); return this.httpResponse(response, HttpCodes.NOT_FOUND, responseData);
} }

View File

@ -2,6 +2,7 @@ enum HttpCodes {
SUCCESS = 200, SUCCESS = 200,
CREATED = 201, CREATED = 201,
BAD_REQUEST = 400, BAD_REQUEST = 400,
VALIDATION_ERROR = 422,
INTERNAL_ERROR = 500, INTERNAL_ERROR = 500,
UNKNOWN_ERROR = 520, UNKNOWN_ERROR = 520,
NOT_IMPLEMENTED = 501, NOT_IMPLEMENTED = 501,