Merge branch 'dev' into staging

This commit is contained in:
Max S 2024-09-12 12:14:00 +02:00
commit 915e904640
4 changed files with 166 additions and 153 deletions

View File

@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "files_notary" ADD COLUMN "key" VARCHAR(255);

View File

@ -37,7 +37,7 @@ model Contacts {
last_name String @db.VarChar(255)
email String @db.VarChar(255)
phone_number String? @db.VarChar(50)
cell_phone_number String? @db.VarChar(50)
cell_phone_number String? @db.VarChar(50)
civility ECivility @default(MALE)
address Addresses? @relation(fields: [address_uid], references: [uid], onDelete: Cascade)
address_uid String? @unique @db.VarChar(255)
@ -51,25 +51,25 @@ model Contacts {
}
model Users {
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)
role Roles @relation(fields: [roles_uid], references: [uid], onDelete: Cascade)
roles_uid String @db.VarChar(255)
office_role OfficeRoles? @relation(fields: [office_role_uid], references: [uid], onDelete: Cascade)
office_role_uid String? @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
checked_at DateTime?
office_membership Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade)
office_uid String @db.VarChar(255)
office_folders OfficeFolders[] @relation("OfficeFolderHasStakeholders")
appointment Appointments[]
votes Votes[]
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)
role Roles @relation(fields: [roles_uid], references: [uid], onDelete: Cascade)
roles_uid String @db.VarChar(255)
office_role OfficeRoles? @relation(fields: [office_role_uid], references: [uid], onDelete: Cascade)
office_role_uid String? @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
checked_at DateTime?
office_membership Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade)
office_uid String @db.VarChar(255)
office_folders OfficeFolders[] @relation("OfficeFolderHasStakeholders")
appointment Appointments[]
votes Votes[]
user_notifications UserNotifications[]
seats Seats[]
documents_notary DocumentsNotary[]
seats Seats[]
documents_notary DocumentsNotary[]
@@map("users")
}
@ -80,6 +80,7 @@ model Whitelist {
active Boolean @default(true)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@@map("whitelist")
}
@ -89,6 +90,7 @@ model UserWhitelist {
active Boolean @default(true)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@@map("user_whitelist")
}
@ -117,135 +119,136 @@ model Offices {
}
model Customers {
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)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
office_folders OfficeFolders[] @relation("OfficeFolderHasCustomers")
documents Documents[]
password String? @db.VarChar(255)
totpCodes TotpCodes[]
office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade)
office_uid String @db.VarChar(255)
notes Notes[]
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)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
office_folders OfficeFolders[] @relation("OfficeFolderHasCustomers")
documents Documents[]
password String? @db.VarChar(255)
totpCodes TotpCodes[]
office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade)
office_uid String @db.VarChar(255)
notes Notes[]
documents_notary DocumentsNotary[]
@@map("customers")
}
model Notifications {
uid String @id @unique @default(uuid())
message String @db.VarChar(1000)
redirection_url String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
userNotifications UserNotifications[]
uid String @id @unique @default(uuid())
message String @db.VarChar(1000)
redirection_url String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
userNotifications UserNotifications[]
@@map("notifications")
}
model UserNotifications {
uid String @id @unique @default(uuid())
user Users @relation(fields: [user_uid], references: [uid], onDelete: Cascade)
user_uid String @db.VarChar(255)
read Boolean @default(false)
notification Notifications @relation(fields: [notification_uid], references: [uid], onDelete: Cascade)
notification_uid String @db.VarChar(255)
uid String @id @unique @default(uuid())
user Users @relation(fields: [user_uid], references: [uid], onDelete: Cascade)
user_uid String @db.VarChar(255)
read Boolean @default(false)
notification Notifications @relation(fields: [notification_uid], references: [uid], onDelete: Cascade)
notification_uid String @db.VarChar(255)
@@map("user_notifications")
}
model OfficeFolders {
uid String @id @unique @default(uuid())
folder_number String @db.VarChar(255)
name String @db.VarChar(255)
description String? @db.VarChar(1000)
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)
office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade)
office_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
stakeholders Users[] @relation("OfficeFolderHasStakeholders")
customers Customers[] @relation("OfficeFolderHasCustomers")
uid String @id @unique @default(uuid())
folder_number String @db.VarChar(255)
name String @db.VarChar(255)
description String? @db.VarChar(1000)
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)
office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade)
office_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
stakeholders Users[] @relation("OfficeFolderHasStakeholders")
customers Customers[] @relation("OfficeFolderHasCustomers")
documents Documents[]
documents_notary DocumentsNotary[]
folder_anchor OfficeFolderAnchors? @relation(fields: [folder_anchor_uid], references: [uid])
folder_anchor_uid String? @unique @db.VarChar(255)
notes Notes[]
folder_anchor OfficeFolderAnchors? @relation(fields: [folder_anchor_uid], references: [uid])
folder_anchor_uid String? @unique @db.VarChar(255)
notes Notes[]
@@unique([folder_number, office_uid])
@@map("office_folders")
}
model OfficeFolderAnchors {
uid String @id @unique @default(uuid())
uid String @id @unique @default(uuid())
hash_sources String[]
root_hash String @db.VarChar(255)
hash_sources String[]
root_hash String @db.VarChar(255)
blockchain EBlockchainName @default(TEZOS)
status EAnchoringStatus @default(QUEUED)
anchor_nb_try Int @default(0)
blockchain EBlockchainName @default(TEZOS)
status EAnchoringStatus @default(QUEUED)
anchor_nb_try Int @default(0)
anchored_at DateTime?
tx_id String? @db.VarChar(255)
tx_link String? @db.VarChar(255)
tx_hash String? @db.VarChar(255)
anchored_at DateTime?
tx_id String? @db.VarChar(255)
tx_link String? @db.VarChar(255)
tx_hash String? @db.VarChar(255)
folder OfficeFolders?
folder OfficeFolders?
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@@map("office_folder_anchors")
}
model Documents {
uid String @id @unique @default(uuid())
document_status EDocumentStatus @default(ASKED)
document_type DocumentTypes @relation(fields: [document_type_uid], references: [uid])
document_type_uid String @db.VarChar(255)
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_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
files Files[]
document_history DocumentHistory[]
reminders DocumentsReminder[]
uid String @id @unique @default(uuid())
document_status EDocumentStatus @default(ASKED)
document_type DocumentTypes @relation(fields: [document_type_uid], references: [uid])
document_type_uid String @db.VarChar(255)
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_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
files Files[]
document_history DocumentHistory[]
reminders DocumentsReminder[]
@@map("documents")
}
model DocumentsNotary {
uid String @id @unique @default(uuid())
folder OfficeFolders @relation(fields: [folder_uid], references: [uid])
folder_uid String @db.VarChar(255)
depositor Users @relation(fields: [depositor_uid], references: [uid], onDelete: Cascade)
depositor_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
files FilesNotary[]
customer Customers @relation(fields: [customer_uid], references: [uid], onDelete: Cascade)
customer_uid String @db.VarChar(255)
document String @db.VarChar(255) @default("")
uid String @id @unique @default(uuid())
folder OfficeFolders @relation(fields: [folder_uid], references: [uid])
folder_uid String @db.VarChar(255)
depositor Users @relation(fields: [depositor_uid], references: [uid], onDelete: Cascade)
depositor_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
files FilesNotary[]
customer Customers @relation(fields: [customer_uid], references: [uid], onDelete: Cascade)
customer_uid String @db.VarChar(255)
document String @default("") @db.VarChar(255)
@@map("documents_notary")
}
model DocumentsReminder {
uid String @id @unique @default(uuid())
document Documents @relation(fields: [document_uid], references: [uid], onDelete: Cascade)
document_uid String @db.VarChar(255)
reminder_date DateTime
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
uid String @id @unique @default(uuid())
document Documents @relation(fields: [document_uid], references: [uid], onDelete: Cascade)
document_uid String @db.VarChar(255)
reminder_date DateTime
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@@map("documents_reminder")
}
@ -280,16 +283,17 @@ model Files {
}
model FilesNotary {
uid String @id @unique @default(uuid())
document_notary DocumentsNotary @relation(fields: [document_uid], references: [uid], onDelete: Cascade)
document_uid String @db.VarChar(255)
file_path String @unique @db.VarChar(255)
file_name String @db.VarChar(255)
mimetype String @db.VarChar(255)
hash String @db.VarChar(255)
size Int
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
uid String @id @unique @default(uuid())
document_notary DocumentsNotary @relation(fields: [document_uid], references: [uid], onDelete: Cascade)
document_uid String @db.VarChar(255)
file_path String @unique @db.VarChar(255)
file_name String @db.VarChar(255)
mimetype String @db.VarChar(255)
hash String @db.VarChar(255)
size Int
key String? @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@@map("files_notary")
}
@ -373,8 +377,9 @@ model Rules {
updated_at DateTime? @updatedAt
role Roles[] @relation("RolesHasRules")
office_roles OfficeRoles[] @relation("OfficeRolesHasRules")
namespace String @db.VarChar(255) @default("notary")
namespace String @default("notary") @db.VarChar(255)
groups RulesGroups[] @relation("RulesGroupsHasRules")
@@map("rules")
}
@ -384,6 +389,7 @@ model RulesGroups {
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
rules Rules[] @relation("RulesGroupsHasRules")
@@map("rules_groups")
}
@ -426,54 +432,58 @@ model Votes {
}
model TotpCodes {
uid String @id @unique @default(uuid())
customer Customers @relation(fields: [customer_uid], references: [uid], onDelete: Cascade)
customer_uid String @db.VarChar(255)
code String @db.VarChar(255)
reason TotpCodesReasons @default(LOGIN)
resent Boolean @default(false)
expire_at DateTime? @default(now())
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
uid String @id @unique @default(uuid())
customer Customers @relation(fields: [customer_uid], references: [uid], onDelete: Cascade)
customer_uid String @db.VarChar(255)
code String @db.VarChar(255)
reason TotpCodesReasons @default(LOGIN)
resent Boolean @default(false)
expire_at DateTime? @default(now())
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@@map("totp_codes")
}
model Subscriptions {
uid String @id @unique @default(uuid())
type ESubscriptionType
status ESubscriptionStatus @default(ACTIVE)
stripe_subscription_id String @db.VarChar(255)
start_date DateTime @default(now())
end_date DateTime
nb_seats Int
office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade)
office_uid String @db.VarChar(255)
seats Seats[]
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
uid String @id @unique @default(uuid())
type ESubscriptionType
status ESubscriptionStatus @default(ACTIVE)
stripe_subscription_id String @db.VarChar(255)
start_date DateTime @default(now())
end_date DateTime
nb_seats Int
office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade)
office_uid String @db.VarChar(255)
seats Seats[]
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@@map("subscriptions")
}
model Seats {
uid String @id @unique @default(uuid())
subscription Subscriptions @relation(fields: [subscription_uid], references: [uid], onDelete: Cascade)
subscription_uid String @db.VarChar(255)
user Users @relation(fields: [user_uid], references: [uid], onDelete: Cascade)
user_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
uid String @id @unique @default(uuid())
subscription Subscriptions @relation(fields: [subscription_uid], references: [uid], onDelete: Cascade)
subscription_uid String @db.VarChar(255)
user Users @relation(fields: [user_uid], references: [uid], onDelete: Cascade)
user_uid String @db.VarChar(255)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
@@map("seats")
}
model Notes {
uid String @id @unique @default(uuid())
content String @db.VarChar(1000)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
customer Customers @relation(fields: [customer_uid], references: [uid], onDelete: Cascade)
customer_uid String @db.VarChar(255)
uid String @id @unique @default(uuid())
content String @db.VarChar(1000)
created_at DateTime? @default(now())
updated_at DateTime? @updatedAt
customer Customers @relation(fields: [customer_uid], references: [uid], onDelete: Cascade)
customer_uid String @db.VarChar(255)
folder OfficeFolders @relation(fields: [folder_uid], references: [uid], onDelete: Cascade)
folder_uid String @db.VarChar(255)
folder_uid String @db.VarChar(255)
@@map("notes")
}

View File

@ -40,6 +40,7 @@ export default class FilesNotaryRepository extends BaseRepository {
mimetype: file.mimetype,
hash: file.hash,
size: file.size,
key: key,
},
};
return this.model.create({ ...createArgs, include: { document_notary: true } });

View File

@ -61,10 +61,10 @@ export default class FilesNotaryService extends BaseService {
*/
public async download(uid: string) {
const file = await this.filesNotaryRepository.findOneByUid(uid);
if (!file?.uid) return null;
if (!file?.key) return null;
const fileResult = await fetch(file.file_path.concat("?pinataGatewayToken=").concat(this.variables.PINATA_GATEWAY_TOKEN));
const fileArrayBuffer = await fileResult.arrayBuffer();
return { file: file, buffer: await this.cryptoService.decrypt(Buffer.from(fileArrayBuffer), file.uid) };
return { file: file, buffer: await this.cryptoService.decrypt(Buffer.from(fileArrayBuffer), file.key) };
}
/**