This commit is contained in:
Vincent Alamelle 2023-05-09 14:43:06 +02:00
parent 9a26118839
commit 20a5041fd2
2 changed files with 35 additions and 2 deletions

View File

@ -1,10 +1,11 @@
import { Response, Request } from "express";
import { Controller, Get } from "@ControllerPattern/index";
import { Controller, Get, Put } from "@ControllerPattern/index";
import ApiController from "@Common/system/controller-pattern/ApiController";
import DeedsService from "@Services/super-admin/DeedsService/DeedsService";
import { Service } from "typedi";
import { Deeds } from "@prisma/client";
import { Deed } from "le-coffre-resources/dist/SuperAdmin";
import { validateOrReject } from "class-validator";
@Controller()
@Service()
@ -62,4 +63,36 @@ export default class DeedsController extends ApiController {
}
this.httpSuccess(response, await this.deedsService.getByUid("uid"));
}
/**
* @description Modify a specific deed by uid
*/
@Put("/api/v1/super-admin/deeds/:uid")
protected async put(req: Request, response: Response) {
try {
const uid = req.params["uid"];
if (!uid) {
throw new Error("No uid provided");
}
//init OfficeFolder resource with request body values
const deedEntity = Deed.hydrate<Deed>(req.body);
//validate folder
await validateOrReject(deedEntity, { groups: ["updateDeed"], forbidUnknownValues: false });
//call service to get prisma entity
const prismaEntityUpdated = await this.deedsService.update(uid, deedEntity);
//Hydrate ressource with prisma entity
const deedEntityUpdated = Deed.hydrate<Deed>(prismaEntityUpdated, {
strategy: "excludeAll",
});
//success
this.httpSuccess(response, deedEntityUpdated);
} catch (error) {
this.httpBadRequest(response, error);
return;
}
}
}

View File

@ -86,7 +86,7 @@ export default class FilesController extends ApiController {
const fileEntity = File.hydrate<File>(req.body);
//validate file
await validateOrReject(fileEntity, { groups: ["create"] });
await validateOrReject(fileEntity, { groups: ["updateFile"] });
//call service to get prisma entity
const prismaEntityUpdated: Files = await this.filesService.update(uid, fileEntity);