refacto hydratation for document controller

This commit is contained in:
OxSaitama 2023-05-04 10:52:39 +02:00
parent c608de5adc
commit 22d0239306
2 changed files with 11 additions and 13 deletions

View File

@ -4,7 +4,6 @@ import ApiController from "@Common/system/controller-pattern/ApiController";
import { Service } from "typedi";
import DocumentsService from "@Services/customer/DocumentsService/DocumentsService";
import { Documents } from "@prisma/client";
import ObjectHydrate from "@Common/helpers/ObjectHydrate";
import { Document } from "le-coffre-resources/dist/Customer";
import { validateOrReject } from "class-validator";
@ -24,13 +23,12 @@ export default class DocumentsController extends ApiController {
try {
//get query
const query = JSON.parse(req.query["q"] as string);
//call service to get prisma entity
const prismaEntity: Documents[] = await this.documentsService.get(query);
//Hydrate ressource with prisma entity
const documents = ObjectHydrate.map<Document>(Document, prismaEntity, { strategy: "exposeAll" });
const documents = Document.map<Document>(Document, prismaEntity, { strategy: "excludeAll" });
//success
this.httpSuccess(response, documents);
@ -49,17 +47,17 @@ export default class DocumentsController extends ApiController {
try {
//init Document resource with request body values
const documentEntity = new Document();
ObjectHydrate.hydrate(documentEntity, req.body);
Document.hydrate(documentEntity, req.body);
//validate document
await validateOrReject(documentEntity, { groups: ["create"] });
await validateOrReject(documentEntity, { groups: ["createDocument"] });
//call service to get prisma entity
const prismaEntityCreated = await this.documentsService.create(documentEntity);
//Hydrate ressource with prisma entity
const documentEntityCreated = ObjectHydrate.hydrate<Document>(new Document(), prismaEntityCreated, {
strategy: "exposeAll",
const documentEntityCreated = Document.hydrate<Document>(prismaEntityCreated, {
strategy: "excludeAll",
});
//success
@ -83,16 +81,16 @@ export default class DocumentsController extends ApiController {
//init Document resource with request body values
const documentEntity = new Document();
ObjectHydrate.hydrate(documentEntity, req.body);
Document.hydrate(documentEntity, req.body);
//validate document
await validateOrReject(documentEntity, { groups: ["create"] });
await validateOrReject(documentEntity, { groups: ["createDocument"] });
//call service to get prisma entity
const prismaEntityUpdated: Documents = await this.documentsService.update(uid, documentEntity);
//Hydrate ressource with prisma entity
const document = ObjectHydrate.hydrate<Document>(new Document(), prismaEntityUpdated, { strategy: "exposeAll" });
const document = Document.hydrate<Document>(prismaEntityUpdated, { strategy: "excludeAll" });
//success
this.httpSuccess(response, document);
@ -117,7 +115,7 @@ export default class DocumentsController extends ApiController {
const documentEntity: Documents = await this.documentsService.delete(uid);
//Hydrate ressource with prisma entity
const document = ObjectHydrate.hydrate<Document>(new Document(), documentEntity, { strategy: "exposeAll" });
const document = Document.hydrate<Document>(documentEntity, { strategy: "excludeAll" });
//success
this.httpSuccess(response, document);
@ -149,7 +147,7 @@ export default class DocumentsController extends ApiController {
}
//Hydrate ressource with prisma entity
const document = ObjectHydrate.hydrate<Document>(new Document(), documentEntity, { strategy: "exposeAll" });
const document = Document.hydrate<Document>(documentEntity, { strategy: "excludeAll" });
//success
this.httpSuccess(response, document);

View File

@ -85,7 +85,7 @@ export default class DocumentsController extends ApiController {
ObjectHydrate.hydrate(documentEntity, req.body);
//validate document
await validateOrReject(documentEntity, { groups: ["create"] });
await validateOrReject(documentEntity, { groups: ["createDocument"] });
//call service to get prisma entity
const prismaEntityUpdated: Documents = await this.documentsService.update(uid, documentEntity);