refacto: naming uuid to uid

This commit is contained in:
OxSaitama 2023-04-17 18:35:19 +02:00
parent f9dbf38dac
commit eab04fb12e
10 changed files with 176 additions and 103 deletions

View File

@ -22,10 +22,9 @@
"start": "tsc && node ./dist/entries/App.js",
"api:start": "npm run migrate && npm run start",
"dev": "nodemon -V",
"build:test": "tsc && mocha ./dist/entries/Test.js",
"format": "prettier --write src",
"migrate": "npx prisma migrate deploy",
"migrate:test": "dotenv -e .env.test -- npx prisma migrate deploy",
"migrate": "npx prisma migrate deploy",
"docker:up:test": "docker-compose -f docker-compose-test.yml up -d",
"docker:down:test": "docker-compose down",
"test": "tsc && npm run docker:up:test && npm run migrate:test && dotenv -e .env.test -- jest -i --verbose ./dist/test/* && npm run docker:down:test"

View File

@ -3,11 +3,11 @@ import { Controller, Get, Post, Put } from "@ControllerPattern/index";
import ApiController from "@Common/system/controller-pattern/ApiController";
import CustomersService from "@Services/super-admin/CustomersService/CustomersService";
import { Service } from "typedi";
import ObjectHydrate from "@Common/helpers/ObjectHydrate";
import { Customer } from "le-coffre-resources/dist/SuperAdmin";
import { Customers } from "@prisma/client";
import { validateOrReject } from "class-validator";
@Controller()
@Service()
export default class CustomersController extends ApiController {
@ -23,12 +23,12 @@ export default class CustomersController extends ApiController {
try {
//get query
const query = JSON.parse(req.query["q"] as string);
//call service to get prisma entity
const customersEntity: Customers[] = await this.customersService.get(query);
const customersEntity = await this.customersService.get(query);
//Hydrate ressource with prisma entity
const customers = ObjectHydrate.map<Customer>(Customer, customersEntity, { strategy: "exposeAll" });
const customers = Customer.map<Customer>(Customer, customersEntity, { strategy: "excludeAll" });
//success
this.httpSuccess(response, customers);
@ -46,7 +46,7 @@ export default class CustomersController extends ApiController {
try {
//init IUser resource with request body values
const customerEntity = new Customer();
ObjectHydrate.hydrate(customerEntity, req.body);
Customer.hydrate(customerEntity, req.body);
//validate user
await validateOrReject(customerEntity, { groups: ["createCustomer"], forbidUnknownValues: false});
@ -55,8 +55,8 @@ export default class CustomersController extends ApiController {
const prismaEntityCreated = await this.customersService.create(customerEntity);
//Hydrate ressource with prisma entity
const customerEntityCreated = ObjectHydrate.hydrate<Customer>(new Customer(), prismaEntityCreated, {
strategy: "exposeAll",
const customerEntityCreated = Customer.hydrate<Customer>(prismaEntityCreated, {
strategy: "excludeAll",
});
//success
@ -79,7 +79,7 @@ export default class CustomersController extends ApiController {
}
//init IUser resource with request body values
const customerEntity = new Customer();
ObjectHydrate.hydrate(customerEntity, req.body);
Customer.hydrate(customerEntity, req.body);
//validate user
await validateOrReject(customerEntity, { groups: ["updateCustomer"] , forbidUnknownValues: false});
@ -87,7 +87,7 @@ export default class CustomersController extends ApiController {
const prismaEntityUpdated = await this.customersService.update(uid, customerEntity);
//Hydrate ressource with prisma entity
const customerEntityUpdated = ObjectHydrate.hydrate<Customer>(new Customer(), prismaEntityUpdated, {
const customerEntityUpdated = Customer.hydrate<Customer>(prismaEntityUpdated, {
strategy: "exposeAll",
});
@ -121,7 +121,7 @@ export default class CustomersController extends ApiController {
}
//Hydrate ressource with prisma entity
const customer = ObjectHydrate.hydrate<Customer>(new Customer(), customerEntity, { strategy: "exposeAll" });
const customer = Customer.hydrate<Customer>(customerEntity, { strategy: "exposeAll" });
//success
this.httpSuccess(response, customer);

View File

@ -7,7 +7,6 @@ import ObjectHydrate from "@Common/helpers/ObjectHydrate";
import { validateOrReject } from "class-validator";
import User from "le-coffre-resources/dist/Notary";
import { Users } from "@prisma/client";
import { plainToInstance } from "class-transformer";
@Controller()
@Service()
@ -27,12 +26,9 @@ export default class UsersController extends ApiController {
//call service to get prisma entity
const usersEntity: Users[] = await this.usersService.get(query);
//Hydrate ressource with prisma entity
const users = plainToInstance<User, Users[]>(User, usersEntity, {
enableImplicitConversion: true,
excludeExtraneousValues: false,
});
const users = User.map<User>(User, usersEntity, {excludeExtraneousValues: true})
//success
this.httpSuccess(response, users);

View File

@ -443,3 +443,4 @@ ALTER TABLE "deed_type_has_document_types" ADD CONSTRAINT "deed_type_has_documen
-- AddForeignKey
ALTER TABLE "deed_type_has_document_types" ADD CONSTRAINT "deed_type_has_document_types_deed_type_uid_fkey" FOREIGN KEY ("deed_type_uid") REFERENCES "deed_types"("uid") ON DELETE CASCADE ON UPDATE CASCADE;

View File

@ -18,7 +18,7 @@ datasource db {
// id String @unique @default(auto()) @map("_id") @db.ObjectId // @map de la table checker le naming avec le tiret
model Addresses {
uid String @id @unique @default(uuid())
uid String @id @unique @default(uuid())
address String @db.VarChar(255)
city String @db.VarChar(255)
zip_code Int
@ -31,15 +31,15 @@ model Addresses {
}
model Contacts {
uid String @id @unique @default(uuid())
uid String @id @unique @default(uuid())
first_name String @db.VarChar(255)
last_name String @db.VarChar(255)
email String @unique @db.VarChar(255)
phone_number String? @db.VarChar(50)
cell_phone_number String? @unique @db.VarChar(50)
cell_phone_number String @unique @db.VarChar(50)
civility ECivility @default(MALE)
address Addresses? @relation(fields: [address_uid], references: [uid], onDelete: Cascade)
address_uid String @unique @db.VarChar(255)
address Addresses? @relation(fields: [address_uid], references: [uid], onDelete: Cascade)
address_uid String @unique @db.VarChar(255)
birthdate DateTime?
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@ -50,14 +50,14 @@ model Contacts {
}
model Users {
uid String @id @unique @default(uuid()) @map("uid")
uid String @id @unique @default(uuid()) @map("uid")
idNot String @unique @db.VarChar(255)
contact Contacts @relation(fields: [contact_uid], references: [uid], onDelete: Cascade)
contact_uid String @unique @db.VarChar(255)
contact_uid String @unique @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
office_membership Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade)
office_uid String @db.VarChar(255)
office_uid String @db.VarChar(255)
user_has_notifications UserHasNotifications[]
office_folder_has_stakeholder OfficeFolderHasStakeholders[]
@ -65,28 +65,28 @@ model Users {
}
model Offices {
uid String @id @unique @default(uuid())
uid String @id @unique @default(uuid())
idNot String @unique @db.VarChar(255)
name String @db.VarChar(255)
crpcen String @unique @db.VarChar(255)
address Addresses @relation(fields: [address_uid], references: [uid], onDelete: Cascade)
address_uid String @unique @db.VarChar(255)
address_uid String @unique @db.VarChar(255)
office_status EOfficeStatus @default(DESACTIVATED)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
deed_types DeedTypes[]
users Users[]
office_folders OfficeFolders[]
document_types DocumentTypes[]
document_types DocumentTypes[]
@@map("offices")
}
model Customers {
uid String @id @unique @default(uuid())
uid String @id @unique @default(uuid())
status ECustomerStatus @default(PENDING)
contact Contacts @relation(fields: [contact_uid], references: [uid], onDelete: Cascade)
contact_uid String @unique @db.VarChar(255)
contact_uid String @unique @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
office_folder_has_customers OfficeFolderHasCustomers[]
@ -96,11 +96,11 @@ model Customers {
}
model UserHasNotifications {
uid String @id @unique @default(uuid())
uid String @id @unique @default(uuid())
user Users @relation(fields: [user_uid], references: [uid])
user_uid String @db.VarChar(255)
user_uid String @db.VarChar(255)
notification Notifications @relation(fields: [notification_uid], references: [uid], onDelete: Cascade)
notification_uid String @db.VarChar(255)
notification_uid String @db.VarChar(255)
notification_status ENotificationStatus @default(UNREAD)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@ -110,7 +110,7 @@ model UserHasNotifications {
}
model Notifications {
uid String @id @unique @default(uuid())
uid String @id @unique @default(uuid())
message String @db.VarChar(255)
redirection_url String @db.VarChar(255)
created_at DateTime? @default(now())
@ -121,16 +121,16 @@ model Notifications {
}
model OfficeFolders {
uid String @id @unique @default(uuid())
uid String @id @unique @default(uuid())
folder_number String @db.VarChar(255)
name String @db.VarChar(255)
description String? @db.VarChar(255)
archived_description String? @db.VarChar(255)
status EFolderStatus @default(LIVE)
deed Deeds @relation(fields: [deed_uid], references: [uid], onDelete: Cascade)
deed_uid String @unique @db.VarChar(255)
deed_uid String @unique @db.VarChar(255)
office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade)
office_uid String @db.VarChar(255)
office_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
office_folder_has_customers OfficeFolderHasCustomers[]
@ -143,12 +143,12 @@ model OfficeFolders {
model OfficeFolderHasCustomers {
uid String @id @unique @default(uuid())
customer Customers @relation(fields: [customer_uid], references: [uid], onDelete: Cascade)
customer Customers @relation(fields: [customer_uid], references: [uid], onDelete: Cascade)
customer_uid String @db.VarChar(255)
office_folder OfficeFolders @relation(fields: [office_folder_uid], references: [uid], onDelete: Cascade)
office_folder OfficeFolders @relation(fields: [office_folder_uid], references: [uid], onDelete: Cascade)
office_folder_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@@unique([office_folder_uid, customer_uid])
@@map("office_folder_has_customers")
@ -156,12 +156,12 @@ model OfficeFolderHasCustomers {
model OfficeFolderHasStakeholders {
uid String @id @unique @default(uuid())
office_folder OfficeFolders @relation(fields: [office_folder_uid], references: [uid], onDelete: Cascade)
office_folder OfficeFolders @relation(fields: [office_folder_uid], references: [uid], onDelete: Cascade)
office_folder_uid String @db.VarChar(255)
user_stakeholder Users @relation(fields: [user_stakeholder_uid], references: [uid], onDelete: Cascade)
user_stakeholder Users @relation(fields: [user_stakeholder_uid], references: [uid], onDelete: Cascade)
user_stakeholder_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@@unique([office_folder_uid, user_stakeholder_uid])
@@map("office_folder_has_stakeholder")
@ -169,29 +169,29 @@ model OfficeFolderHasStakeholders {
model Documents {
uid String @id @unique @default(uuid())
document_status EDocumentStatus @default(ASKED)
document_type DocumentTypes @relation(fields: [document_type_uid], references: [uid])
document_status EDocumentStatus @default(ASKED)
document_type DocumentTypes @relation(fields: [document_type_uid], references: [uid])
document_type_uid String @db.VarChar(255)
blockchain_anchor BlockchainAnchors? @relation(fields: [blockchain_anchor_uid], references: [uid])
blockchain_anchor BlockchainAnchors? @relation(fields: [blockchain_anchor_uid], references: [uid])
blockchain_anchor_uid String? @db.VarChar(255)
folder OfficeFolders @relation(fields: [folder_uid], references: [uid])
folder OfficeFolders @relation(fields: [folder_uid], references: [uid])
folder_uid String @db.VarChar(255)
depositor Customers @relation(fields: [depositor_uid], references: [uid], onDelete: Cascade)
depositor Customers @relation(fields: [depositor_uid], references: [uid], onDelete: Cascade)
depositor_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
files Files[]
document_history DocumentHistory[]
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
files Files[]
document_history DocumentHistory[]
@@map("documents")
}
model DocumentHistory {
uid String @id @unique @default(uuid())
uid String @id @unique @default(uuid())
document_status EDocumentStatus @default(ASKED)
refused_reason String? @db.VarChar(255)
document Documents @relation(fields: [document_uid], references: [uid], onDelete: Cascade)
document_uid String @db.VarChar(255)
document_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@ -200,17 +200,17 @@ model DocumentHistory {
model Files {
uid String @id @unique @default(uuid())
document Documents @relation(fields: [document_uid], references: [uid], onDelete: Cascade)
document Documents @relation(fields: [document_uid], references: [uid], onDelete: Cascade)
document_uid String @db.VarChar(255)
file_path String @unique @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
file_path String @unique @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@@map("files")
}
model BlockchainAnchors {
uid String @id @unique @default(uuid())
uid String @id @unique @default(uuid())
smartSigJobId String @unique @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@ -220,12 +220,12 @@ model BlockchainAnchors {
}
model DocumentTypes {
uid String @id @unique @default(uuid())
uid String @id @unique @default(uuid())
name String @db.VarChar(255)
public_description String @db.VarChar(255)
private_description String? @db.VarChar(255)
office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade)
office_uid String @db.VarChar(255)
office_uid String @db.VarChar(255)
archived_at DateTime?
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@ -239,21 +239,21 @@ model DocumentTypes {
model DeedHasDocumentTypes {
uid String @id @unique @default(uuid())
document_type DocumentTypes @relation(fields: [document_type_uid], references: [uid], onDelete: Cascade)
document_type DocumentTypes @relation(fields: [document_type_uid], references: [uid], onDelete: Cascade)
document_type_uid String @db.VarChar(255)
deed Deeds @relation(fields: [deed_uid], references: [uid], onDelete: Cascade)
deed Deeds @relation(fields: [deed_uid], references: [uid], onDelete: Cascade)
deed_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@@unique([deed_uid, document_type_uid])
@@map("deed_has_document_types")
}
model Deeds {
uid String @id @unique @default(uuid())
uid String @id @unique @default(uuid())
deed_type DeedTypes @relation(fields: [deed_type_uid], references: [uid], onDelete: Cascade)
deed_type_uid String @db.VarChar(255)
deed_type_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
deed_has_document_types DeedHasDocumentTypes[]
@ -263,12 +263,12 @@ model Deeds {
}
model DeedTypes {
uid String @id @unique @default(uuid())
uid String @id @unique @default(uuid())
name String @db.VarChar(255)
description String @db.VarChar(255)
archived_at DateTime?
office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade)
office_uid String @db.VarChar(255)
office_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
deed Deeds[]
@ -280,12 +280,12 @@ model DeedTypes {
model DeedTypeHasDocumentTypes {
uid String @id @unique @default(uuid())
document_type DocumentTypes @relation(fields: [document_type_uid], references: [uid], onDelete: Cascade)
document_type DocumentTypes @relation(fields: [document_type_uid], references: [uid], onDelete: Cascade)
document_type_uid String @db.VarChar(255)
deed_type DeedTypes @relation(fields: [deed_type_uid], references: [uid], onDelete: Cascade)
deed_type DeedTypes @relation(fields: [deed_type_uid], references: [uid], onDelete: Cascade)
deed_type_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@@unique([deed_type_uid, document_type_uid])
@@map("deed_type_has_document_types")

View File

@ -55,6 +55,7 @@ import {
const uidOfficeFolder1: string = randomString();
const uidOfficeFolder2: string = randomString();
<<<<<<< HEAD
const uidOfficeFolder3: string = randomString();
const uidOfficeFolder4: string = randomString();
const uidOfficeFolder5: string = randomString();
@ -64,6 +65,11 @@ import {
const uidDeed3: string = randomString();
const uidDeed4: string = randomString();
const uidDeed5: string = randomString();
=======
const uidDeed1: string = randomString();
const uidDeed2: string = randomString();
>>>>>>> 7122ff1 (uuid --> uid)
const uidDeedType1: string = randomString();
const uidDeedType2: string = randomString();
@ -199,8 +205,13 @@ import {
const officeFolders: OfficeFolders[] = [
{
uid: uidOfficeFolder1,
<<<<<<< HEAD
folder_number: "0001",
name: "Dossier",
=======
folder_number: randomString(),
name: "0001",
>>>>>>> 7122ff1 (uuid --> uid)
deed_uid: uidDeed1,
status: EFolderStatus.LIVE,
created_at: new Date(),
@ -211,8 +222,13 @@ import {
},
{
uid: uidOfficeFolder2,
<<<<<<< HEAD
folder_number: "0002",
name: "Dossier",
=======
folder_number: randomString(),
name: "0001",
>>>>>>> 7122ff1 (uuid --> uid)
deed_uid: uidDeed2,
status: EFolderStatus.LIVE,
created_at: new Date(),
@ -263,17 +279,24 @@ import {
{
uid: uidDeed1,
deed_type_uid: uidDeedType1,
<<<<<<< HEAD
created_at: new Date(),
updated_at: new Date(),
},
{
uid: uidDeed2,
deed_type_uid: uidDeedType2,
=======
>>>>>>> 7122ff1 (uuid --> uid)
created_at: new Date(),
updated_at: new Date(),
},
{
<<<<<<< HEAD
uid: uidDeed3,
=======
uid: uidDeed2,
>>>>>>> 7122ff1 (uuid --> uid)
deed_type_uid: uidDeedType2,
created_at: new Date(),
updated_at: new Date(),

View File

@ -1,7 +1,7 @@
import Database from "@Common/databases/database";
import BaseRepository from "@Repositories/BaseRepository";
import { Service } from "typedi";
import { Customers, ECivility, ECustomerStatus, Prisma } from "@prisma/client";
import { Contacts, Customers, ECivility, ECustomerStatus, Prisma } from "@prisma/client";
import { Customer } from "le-coffre-resources/dist/SuperAdmin";
@Service()
@ -19,15 +19,24 @@ export default class CustomersRepository extends BaseRepository {
/**
* @description : Find many customers
*/
public async findMany(query: any): Promise<Customers[]> {
public async findMany(query: Prisma.CustomersFindManyArgs): Promise<
(Customers & {
contact: Contacts;
})[]
> {
query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows);
return this.model.findMany(query);
if (!query.include) return this.model.findMany({ ...query, include: { contact: true } });
return this.model.findMany({ ...query, include: { contact: { include: { address: true } } } });
}
/**
* @description : Create a customer
*/
public async create(customer: Customer): Promise<Customers> {
public async create(customer: Customer): Promise<
Customers & {
contact: Contacts;
}
> {
const createArgs: Prisma.CustomersCreateArgs = {
data: {
status: ECustomerStatus.PENDING,
@ -39,7 +48,7 @@ export default class CustomersRepository extends BaseRepository {
phone_number: customer.contact.phone_number,
cell_phone_number: customer.contact?.cell_phone_number,
civility: ECivility[customer.contact.civility as keyof typeof ECivility],
address: {}
address: {},
},
},
},
@ -52,13 +61,20 @@ export default class CustomersRepository extends BaseRepository {
city: customer.contact.address!.city,
};
}
return this.model.create(createArgs);
return this.model.create({ ...createArgs, include: { contact: true } });
}
/**
* @description : Update data from a customer
*/
public async update(uid: string, customer: Customer): Promise<Customers> {
public async update(
uid: string,
customer: Customer,
): Promise<
Customers & {
contact: Contacts;
}
> {
const updateArgs: Prisma.CustomersUpdateArgs = {
where: {
uid: uid,
@ -73,11 +89,11 @@ export default class CustomersRepository extends BaseRepository {
phone_number: customer.contact.phone_number,
cell_phone_number: customer.contact.cell_phone_number,
civility: ECivility[customer.contact.civility as keyof typeof ECivility],
address: {}
address: {},
},
},
},
}
};
if (customer.contact.address) {
updateArgs.data.contact!.update!.address!.update = {
address: customer.contact.address!.address,
@ -85,7 +101,7 @@ export default class CustomersRepository extends BaseRepository {
city: customer.contact.address!.city,
};
}
return this.model.update(updateArgs);
return this.model.update({ ...updateArgs, include: { contact: true } });
}
/**

View File

@ -1,7 +1,7 @@
import Database from "@Common/databases/database";
import BaseRepository from "@Repositories/BaseRepository";
import { Service } from "typedi";
import { ECivility, Prisma, Users } from "@prisma/client";
import { Addresses, Contacts, ECivility, Offices, Prisma, Users } from "@prisma/client";
import User from "le-coffre-resources/dist/SuperAdmin";
@Service()
@ -19,15 +19,26 @@ export default class UsersRepository extends BaseRepository {
/**
* @description : Find many users
*/
public async findMany(query: any): Promise<Users[]> {
public async findMany(query: Prisma.UsersFindManyArgs): Promise<
(Users & {
contact: Contacts;
office_membership: Offices & {
address: Addresses
};
})[]
> {
query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows);
return this.model.findMany(query);
if (!query.include) return this.model.findMany({ ...query, include: { contact: true, office_membership: { include: { address: true } } } });
return this.model.findMany({ ...query, include: { contact: { include: { address: true } }, office_membership: { include: { address: true } } } });
}
/**
* @description : Create a user
*/
public async create(user: User): Promise<Users> {
public async create(user: User): Promise<Users & {
contact: Contacts;
office_membership: Offices;
}> {
const createArgs: Prisma.UsersCreateArgs = {
data: {
idNot: user.idNot,
@ -62,7 +73,7 @@ export default class UsersRepository extends BaseRepository {
},
},
},
}
};
if (user.contact.address) {
createArgs.data.contact!.create!.address!.create = {
address: user.contact.address!.address,
@ -70,13 +81,16 @@ export default class UsersRepository extends BaseRepository {
city: user.contact.address!.city,
};
}
return this.model.create(createArgs);
return this.model.create({...createArgs, include : { contact: true, office_membership: true}});
}
/**
* @description : Update data from a user
*/
public async update(uid: string, user: User): Promise<Users> {
public async update(uid: string, user: User): Promise<Users & {
contact: Contacts;
office_membership: Offices;
}> {
const updateArgs: Prisma.UsersUpdateArgs = {
where: {
uid: uid,
@ -110,7 +124,7 @@ export default class UsersRepository extends BaseRepository {
phone_number: user.contact.phone_number,
cell_phone_number: user.contact.cell_phone_number,
civility: ECivility[user.contact.civility as keyof typeof ECivility],
address: {}
address: {},
},
},
},
@ -122,7 +136,7 @@ export default class UsersRepository extends BaseRepository {
city: user.contact.address!.city,
};
}
return this.model.update(updateArgs);
return this.model.update({...updateArgs, include : { contact: true, office_membership: true}});
}
/**

View File

@ -1,4 +1,4 @@
import { Customers } from "@prisma/client";
import { Contacts, Customers } from "@prisma/client";
import CustomersRepository from "@Repositories/CustomersRepository";
import BaseService from "@Services/BaseService";
import { Customer } from "le-coffre-resources/dist/SuperAdmin";
@ -14,7 +14,11 @@ export default class CustomersService extends BaseService {
* @description : Get all Customers
* @throws {Error} If Customers cannot be get
*/
public async get(query: any) {
public async get(query: any): Promise<
(Customers & {
contact: Contacts;
})[]
> {
return this.customerRepository.findMany(query);
}
@ -22,7 +26,11 @@ export default class CustomersService extends BaseService {
* @description : Create a new customer
* @throws {Error} If customer cannot be created
*/
public async create(customerEntity: Customer): Promise<Customers> {
public async create(customerEntity: Customer): Promise<
Customers & {
contact: Contacts;
}
> {
return this.customerRepository.create(customerEntity);
}
@ -30,7 +38,14 @@ export default class CustomersService extends BaseService {
* @description : Modify a customer
* @throws {Error} If customer cannot be modified
*/
public async update(uid: string, customerEntity: Customer): Promise<Customers> {
public async update(
uid: string,
customerEntity: Customer,
): Promise<
Customers & {
contact: Contacts;
}
> {
return this.customerRepository.update(uid, customerEntity);
}

View File

@ -3,7 +3,7 @@ import "reflect-metadata";
import { Service } from "typedi";
import UsersRepository from "@Repositories/UsersRepository";
import User from "le-coffre-resources/dist/SuperAdmin";
import { Users } from "@prisma/client";
import { Contacts, Offices, Prisma, Users } from "@prisma/client";
@Service()
export default class UsersService extends BaseService {
@ -15,7 +15,10 @@ export default class UsersService extends BaseService {
* @description : Get all users
* @throws {Error} If users cannot be get
*/
public get(query: any): Promise<Users[]> {
public get(query: Prisma.UsersFindManyArgs): Promise<(Users & {
contact: Contacts;
office_membership: Offices;
})[]> {
return this.userRepository.findMany(query);
}
@ -23,7 +26,10 @@ export default class UsersService extends BaseService {
* @description : Create a user
* @throws {Error} If user couldn't be created
*/
public create(userEntity: User): Promise<Users> {
public create(userEntity: User): Promise<Users & {
contact: Contacts;
office_membership: Offices;
}> {
return this.userRepository.create(userEntity);
}
@ -31,7 +37,10 @@ export default class UsersService extends BaseService {
* @description : Modify a user
* @throws {Error} If user modification failed
*/
public update(uid: string, userEntity: User): Promise<Users> {
public update(uid: string, userEntity: User): Promise<Users & {
contact: Contacts;
office_membership: Offices;
}> {
return this.userRepository.update(uid, userEntity);
}