From b7543e0d2c02fc1f5e5e9849475c55f9a134e8af Mon Sep 17 00:00:00 2001 From: Sosthene Date: Mon, 11 Aug 2025 13:36:14 +0200 Subject: [PATCH] Notary added files watermarked --- .../DepositOtherDocument/index.tsx | 74 ++++++++-------- .../Layouts/Folder/SendDocuments/index.tsx | 86 ++++++++++--------- src/front/Components/Layouts/Rib/index.tsx | 56 ++++++------ 3 files changed, 114 insertions(+), 102 deletions(-) diff --git a/src/front/Components/DesignSystem/DepositOtherDocument/index.tsx b/src/front/Components/DesignSystem/DepositOtherDocument/index.tsx index d6b39eb9..2b43286d 100644 --- a/src/front/Components/DesignSystem/DepositOtherDocument/index.tsx +++ b/src/front/Components/DesignSystem/DepositOtherDocument/index.tsx @@ -21,6 +21,7 @@ import DocumentService from "src/common/Api/LeCoffreApi/sdk/DocumentService"; import FileService from "src/common/Api/LeCoffreApi/sdk/FileService"; import CustomerService from "src/common/Api/LeCoffreApi/sdk/CustomerService"; import FolderService from "src/common/Api/LeCoffreApi/sdk/FolderService"; +import WatermarkService from "@Front/Services/WatermarkService"; type IProps = { onChange?: (files: File[]) => void; @@ -252,50 +253,53 @@ export default class DepositOtherDocument extends React.Component((resolve: () => void) => { - const reader = new FileReader(); - reader.onload = (event) => { - if (event.target?.result) { - const date: Date = new Date(); - const strDate: string = `${date.getDate().toString().padStart(2, '0')}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getFullYear()}`; + // Add watermark to the file before processing + WatermarkService.getInstance().addWatermark(file).then(async (watermarkedFile) => { + const reader = new FileReader(); + reader.onload = (event) => { + if (event.target?.result) { + const date: Date = new Date(); + const strDate: string = `${date.getDate().toString().padStart(2, '0')}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getFullYear()}`; - const fileName: string = `${file.name.split('.')[0]}_${strDate}.${file.name.split('.').pop()}`; + const fileName: string = `${file.name.split('.')[0]}_${strDate}.${file.name.split('.').pop()}`; - const arrayBuffer: ArrayBuffer = event.target.result as ArrayBuffer; - const uint8Array: Uint8Array = new Uint8Array(arrayBuffer); + const arrayBuffer: ArrayBuffer = event.target.result as ArrayBuffer; + const uint8Array: Uint8Array = new Uint8Array(arrayBuffer); - const fileBlob: any = { - type: file.type, - data: uint8Array - }; + const fileBlob: any = { + type: watermarkedFile.type, + data: uint8Array + }; - const fileData: any = { - file_blob: fileBlob, - file_name: fileName - }; - const validatorId: string = '884cb36a346a79af8697559f16940141f068bdf1656f88fa0df0e9ecd7311fb8:0'; + const fileData: any = { + file_blob: fileBlob, + file_name: fileName + }; + const validatorId: string = '884cb36a346a79af8697559f16940141f068bdf1656f88fa0df0e9ecd7311fb8:0'; - FileService.createFile(fileData, validatorId).then((processCreated: any) => { - const fileUid: string = processCreated.processData.uid; + FileService.createFile(fileData, validatorId).then((processCreated: any) => { + const fileUid: string = processCreated.processData.uid; - DocumentService.getDocumentByUid(documentCreated.uid).then((process: any) => { - if (process) { - const document: any = process.processData; + DocumentService.getDocumentByUid(documentCreated.uid).then((process: any) => { + if (process) { + const document: any = process.processData; - let files: any[] = document.files; - if (!files) { - files = []; + let files: any[] = document.files; + if (!files) { + files = []; + } + files.push({ uid: fileUid }); + + DocumentService.updateDocument(process, { files: files, document_status: EDocumentStatus.DEPOSITED }).then(() => { + FolderService.refreshFolderByUid(document.folder.uid).then(() => resolve()); + }); } - files.push({ uid: fileUid }); - - DocumentService.updateDocument(process, { files: files, document_status: EDocumentStatus.DEPOSITED }).then(() => { - FolderService.refreshFolderByUid(document.folder.uid).then(() => resolve()); - }); - } + }); }); - }); - } - }; - reader.readAsArrayBuffer(file); + } + }; + reader.readAsArrayBuffer(watermarkedFile); + }); }); } diff --git a/src/front/Components/Layouts/Folder/SendDocuments/index.tsx b/src/front/Components/Layouts/Folder/SendDocuments/index.tsx index 74a00bd5..1e300752 100644 --- a/src/front/Components/Layouts/Folder/SendDocuments/index.tsx +++ b/src/front/Components/Layouts/Folder/SendDocuments/index.tsx @@ -23,6 +23,7 @@ import FolderService from "src/common/Api/LeCoffreApi/sdk/FolderService"; import DocumentService from "src/common/Api/LeCoffreApi/sdk/DocumentService"; import FileService from "src/common/Api/LeCoffreApi/sdk/FileService"; import CustomerService from "src/common/Api/LeCoffreApi/sdk/CustomerService"; +import WatermarkService from "@Front/Services/WatermarkService"; enum EClientSelection { ALL_CLIENTS = "all_clients", @@ -77,53 +78,56 @@ export default function SendDocuments() { for (const file of files) { await new Promise((resolve: () => void) => { - const reader = new FileReader(); - reader.onload = (event) => { - if (event.target?.result) { - const date: Date = new Date(); - const strDate: string = `${date.getDate().toString().padStart(2, '0')}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getFullYear()}`; + // Add watermark to the file before processing + WatermarkService.getInstance().addWatermark(file).then(async (watermarkedFile) => { + const reader = new FileReader(); + reader.onload = (event) => { + if (event.target?.result) { + const date: Date = new Date(); + const strDate: string = `${date.getDate().toString().padStart(2, '0')}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getFullYear()}`; - const fileName: string = `aplc_${customer.contact.last_name}_${strDate}.${file.name.split('.').pop()}`; + const fileName: string = `aplc_${customer.contact.last_name}_${strDate}.${file.name.split('.').pop()}`; - const arrayBuffer: ArrayBuffer = event.target.result as ArrayBuffer; - const uint8Array: Uint8Array = new Uint8Array(arrayBuffer); + const arrayBuffer: ArrayBuffer = event.target.result as ArrayBuffer; + const uint8Array: Uint8Array = new Uint8Array(arrayBuffer); - const fileBlob: any = { - type: file.type, - data: uint8Array - }; - - const fileData: any = { - file_blob: fileBlob, - file_name: fileName - }; - const validatorId: string = '884cb36a346a79af8697559f16940141f068bdf1656f88fa0df0e9ecd7311fb8:0'; - - FileService.createFile(fileData, validatorId).then((processCreated: any) => { - const fileUid: string = processCreated.processData.uid; - - const documentData: any = { - folder: { - uid: folderUid as string - }, - customer: { - uid: selectedClient as string - }, - files: [ - { - uid: fileUid - } - ], - document_status: EDocumentNotaryStatus.SENT + const fileBlob: any = { + type: watermarkedFile.type, + data: uint8Array }; - DocumentService.createDocument(documentData, validatorId).then(() => { - FolderService.refreshFolderByUid(folderUid as string).then(() => resolve()); + const fileData: any = { + file_blob: fileBlob, + file_name: fileName + }; + const validatorId: string = '884cb36a346a79af8697559f16940141f068bdf1656f88fa0df0e9ecd7311fb8:0'; + + FileService.createFile(fileData, validatorId).then((processCreated: any) => { + const fileUid: string = processCreated.processData.uid; + + const documentData: any = { + folder: { + uid: folderUid as string + }, + customer: { + uid: selectedClient as string + }, + files: [ + { + uid: fileUid + } + ], + document_status: EDocumentNotaryStatus.SENT + }; + + DocumentService.createDocument(documentData, validatorId).then(() => { + FolderService.refreshFolderByUid(folderUid as string).then(() => resolve()); + }); }); - }); - } - }; - reader.readAsArrayBuffer(file); + } + }; + reader.readAsArrayBuffer(watermarkedFile); + }); }); } } diff --git a/src/front/Components/Layouts/Rib/index.tsx b/src/front/Components/Layouts/Rib/index.tsx index 66a6c3b0..f07b4e01 100644 --- a/src/front/Components/Layouts/Rib/index.tsx +++ b/src/front/Components/Layouts/Rib/index.tsx @@ -11,6 +11,7 @@ import Loader from "@Front/Components/DesignSystem/Loader"; import LoaderService from "src/common/Api/LeCoffreApi/sdk/Loader/LoaderService"; import OfficeRibService from "src/common/Api/LeCoffreApi/sdk/OfficeRibService"; +import WatermarkService from "@Front/Services/WatermarkService"; export default function Rib() { const [documentList, setDocumentList] = useState([]); @@ -60,38 +61,41 @@ export default function Rib() { const file = documentList[0]!; LoaderService.getInstance().show(); - const reader = new FileReader(); - reader.onload = (event) => { - if (event.target?.result) { - const date: Date = new Date(); - const strDate: string = `${date.getDate().toString().padStart(2, '0')}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getFullYear()}`; + // Add watermark to the file before processing + WatermarkService.getInstance().addWatermark(file).then(async (watermarkedFile) => { + const reader = new FileReader(); + reader.onload = (event) => { + if (event.target?.result) { + const date: Date = new Date(); + const strDate: string = `${date.getDate().toString().padStart(2, '0')}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getFullYear()}`; - const fileName: string = `aplc_${file.name.split('.')[0]}_${strDate}.${file.name.split('.').pop()}`; + const fileName: string = `aplc_${file.name.split('.')[0]}_${strDate}.${file.name.split('.').pop()}`; - const arrayBuffer: ArrayBuffer = event.target.result as ArrayBuffer; - const uint8Array: Uint8Array = new Uint8Array(arrayBuffer); + const arrayBuffer: ArrayBuffer = event.target.result as ArrayBuffer; + const uint8Array: Uint8Array = new Uint8Array(arrayBuffer); - const fileBlob: any = { - type: file.type, - data: uint8Array - }; + const fileBlob: any = { + type: watermarkedFile.type, + data: uint8Array + }; - const fileData: any = { - file_blob: fileBlob, - file_name: fileName - }; - const validatorId: string = '884cb36a346a79af8697559f16940141f068bdf1656f88fa0df0e9ecd7311fb8:0'; + const fileData: any = { + file_blob: fileBlob, + file_name: fileName + }; + const validatorId: string = '884cb36a346a79af8697559f16940141f068bdf1656f88fa0df0e9ecd7311fb8:0'; - OfficeRibService.createOfficeRib(fileData, validatorId).then(() => { - LoaderService.getInstance().hide(); - onCloseRibModal(); + OfficeRibService.createOfficeRib(fileData, validatorId).then(() => { + LoaderService.getInstance().hide(); + onCloseRibModal(); - setIsLoading(true); - setTimeout(() => fetchData(), 2000); - }); - } - }; - reader.readAsArrayBuffer(file); + setIsLoading(true); + setTimeout(() => fetchData(), 2000); + }); + } + }; + reader.readAsArrayBuffer(watermarkedFile); + }); } function openRibModal(): void {