update deed functional

This commit is contained in:
Vincent Alamelle 2023-05-09 15:37:27 +02:00
parent cf7c50f284
commit e6654979cd
3 changed files with 22 additions and 10 deletions

View File

@ -49,8 +49,15 @@ export default class DeedsController extends ApiController {
throw new Error("No uid provided");
}
//call service to get prisma entity
const deedEntity: Deeds = await this.deedsService.getByUid(uid);
let deedEntity: Deeds;
//get query
if (req.query["q"]) {
const query = JSON.parse(req.query["q"] as string);
deedEntity = await this.deedsService.getByUid(uid, query);
} else {
//call service to get prisma entity
deedEntity = await this.deedsService.getByUid(uid);
}
//Hydrate ressource with prisma entity
const deed = Deed.hydrate<Deed>(deedEntity, { strategy: "excludeAll" });
@ -61,7 +68,6 @@ export default class DeedsController extends ApiController {
this.httpBadRequest(response, error);
return;
}
this.httpSuccess(response, await this.deedsService.getByUid("uid"));
}
/**
@ -76,9 +82,9 @@ export default class DeedsController extends ApiController {
}
//init OfficeFolder resource with request body values
const deedEntity = Deed.hydrate<Deed>(req.body);
//validate folder
await validateOrReject(deedEntity, { groups: ["updateDeed"], forbidUnknownValues: false });
await validateOrReject(deedEntity, { groups: ["updateDeed"], forbidUnknownValues: false });
//call service to get prisma entity
const prismaEntityUpdated = await this.deedsService.update(uid, deedEntity);

View File

@ -72,6 +72,8 @@ export default class DeedsRepository extends BaseRepository {
deed_has_document_types: true,
},
};
console.log(deed.deed_has_document_types);
if (deed.deed_has_document_types) {
updateArgs.data.deed_has_document_types = {
deleteMany: { deed_uid: uid },
@ -89,12 +91,16 @@ export default class DeedsRepository extends BaseRepository {
/**
* @description : Find unique deed
*/
public async findOneByUid(uid: string): Promise<Deeds> {
const deedTypeEntity = await this.model.findUnique({
public async findOneByUid(uid: string, query?: any): Promise<Deeds> {
const findOneArgs: Prisma.DeedsFindUniqueArgs = {
where: {
uid: uid,
},
});
};
if (query) {
findOneArgs.include = query;
}
const deedTypeEntity = await this.model.findUnique(findOneArgs);
if (!deedTypeEntity) {
throw new Error("deed not found");

View File

@ -38,7 +38,7 @@ export default class DeedsService extends BaseService {
* @description : Get a deed by uid
* @throws {Error} If deed-type cannot be get by uid
*/
public async getByUid(uid: string) {
return this.deedRepository.findOneByUid(uid);
public async getByUid(uid: string, query?: any) {
return this.deedRepository.findOneByUid(uid, query);
}
}