From 87976783a352e85668268a25382de1091831cc39 Mon Sep 17 00:00:00 2001 From: Anthony Janin Date: Tue, 5 Aug 2025 14:56:53 +0200 Subject: [PATCH] Fix some issues --- .../Api/LeCoffreApi/sdk/AbstractService.ts | 4 ++-- .../LeCoffreApi/sdk/CollaboratorService.ts | 2 +- .../Api/LeCoffreApi/sdk/CustomerService.ts | 2 +- .../Api/LeCoffreApi/sdk/DeedTypeService.ts | 15 +++++++----- .../Api/LeCoffreApi/sdk/DocumentService.ts | 2 +- .../LeCoffreApi/sdk/DocumentTypeService.ts | 2 +- src/common/Api/LeCoffreApi/sdk/FileService.ts | 2 +- .../Api/LeCoffreApi/sdk/FolderService.ts | 2 +- src/common/Api/LeCoffreApi/sdk/ImportData.ts | 2 +- src/common/Api/LeCoffreApi/sdk/NoteService.ts | 2 +- .../Api/LeCoffreApi/sdk/OfficeRibService.ts | 2 +- .../Api/LeCoffreApi/sdk/OfficeRoleService.ts | 2 +- .../Api/LeCoffreApi/sdk/OfficeService.ts | 2 +- src/common/Api/LeCoffreApi/sdk/RoleService.ts | 2 +- .../Api/LeCoffreApi/sdk/RuleGroupService.ts | 2 +- src/common/Api/LeCoffreApi/sdk/RuleService.ts | 2 +- .../LeCoffreApi/Notary/Customers/Customers.ts | 6 ++--- .../DeedTypes/DeedTypesCreate/index.tsx | 9 +++---- .../DeedTypes/DeedTypesInformations/index.tsx | 6 +++-- .../EmailReminder/ReminderModal/index.tsx | 24 +++++++++++++++++-- 20 files changed, 59 insertions(+), 33 deletions(-) diff --git a/src/common/Api/LeCoffreApi/sdk/AbstractService.ts b/src/common/Api/LeCoffreApi/sdk/AbstractService.ts index 17ddeada..0f13b415 100644 --- a/src/common/Api/LeCoffreApi/sdk/AbstractService.ts +++ b/src/common/Api/LeCoffreApi/sdk/AbstractService.ts @@ -38,7 +38,7 @@ export default abstract class AbstractService { return null; } - const now = Date.now(); + const now: number = Date.now(); if ((now - item.timestamp) < this.CACHE_TTL) { return item.process; } @@ -48,7 +48,7 @@ export default abstract class AbstractService { protected static getItems(key: string): any[] { const list: any[] = JSON.parse(sessionStorage.getItem(key) || '[]'); - const now = Date.now(); + const now: number = Date.now(); const items: any[] = []; for (const item of list) { diff --git a/src/common/Api/LeCoffreApi/sdk/CollaboratorService.ts b/src/common/Api/LeCoffreApi/sdk/CollaboratorService.ts index 4737f7f4..0fe3d856 100644 --- a/src/common/Api/LeCoffreApi/sdk/CollaboratorService.ts +++ b/src/common/Api/LeCoffreApi/sdk/CollaboratorService.ts @@ -15,7 +15,7 @@ export default class CollaboratorService extends AbstractService { } public static createCollaborator(collaboratorData: any, validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/common/Api/LeCoffreApi/sdk/CustomerService.ts b/src/common/Api/LeCoffreApi/sdk/CustomerService.ts index 601cab38..2654f2a3 100644 --- a/src/common/Api/LeCoffreApi/sdk/CustomerService.ts +++ b/src/common/Api/LeCoffreApi/sdk/CustomerService.ts @@ -11,7 +11,7 @@ export default class CustomerService extends AbstractService { } public static createCustomer(customerData: any, validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/common/Api/LeCoffreApi/sdk/DeedTypeService.ts b/src/common/Api/LeCoffreApi/sdk/DeedTypeService.ts index e4efd224..fa010ed6 100644 --- a/src/common/Api/LeCoffreApi/sdk/DeedTypeService.ts +++ b/src/common/Api/LeCoffreApi/sdk/DeedTypeService.ts @@ -13,7 +13,7 @@ export default class DeedTypeService extends AbstractService { } public static createDeedType(deedTypeData: any, validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), @@ -91,7 +91,8 @@ export default class DeedTypeService extends AbstractService { publicValues['uid'] && publicValues['utype'] && publicValues['utype'] === 'deedType' && - publicValues['isDeleted'] && publicValues['isDeleted'] === 'false' && + publicValues['isDeleted'] && + publicValues['isDeleted'] === 'false' && !items.map((item: any) => item.processData.uid).includes(publicValues['uid']) ).then(async (processes: any[]) => { if (processes.length === 0) { @@ -176,18 +177,20 @@ export default class DeedTypeService extends AbstractService { } public static updateDeedType(process: any, newData: any): Promise { + console.log(process); + return new Promise((resolve: () => void) => { this.messageBus.updateProcess(process.processId, { updated_at: new Date().toISOString(), ...newData }, [], null).then((processUpdated: any) => { const newStateId: string = processUpdated.diffs[0]?.state_id; this.messageBus.notifyUpdate(process.processId, newStateId).then(() => { this.messageBus.validateState(process.processId, newStateId).then(() => { // Update cache - this.setItem('_deed_types_', processUpdated); + this.setItem('_deed_types_', process); resolve(); - }).catch(() => console.error('Failed to validate state')); - }).catch(() => console.error('Failed to notify update')); - }).catch(() => console.error('Failed to update')); + }).catch((error) => console.error('Failed to validate state', error)); + }).catch((error) => console.error('Failed to notify update', error)); + }).catch((error) => console.error('Failed to update', error)); }); } diff --git a/src/common/Api/LeCoffreApi/sdk/DocumentService.ts b/src/common/Api/LeCoffreApi/sdk/DocumentService.ts index f43b9be0..de36b38c 100644 --- a/src/common/Api/LeCoffreApi/sdk/DocumentService.ts +++ b/src/common/Api/LeCoffreApi/sdk/DocumentService.ts @@ -11,7 +11,7 @@ export default class DocumentService extends AbstractService { } public static createDocument(documentData: any, validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/common/Api/LeCoffreApi/sdk/DocumentTypeService.ts b/src/common/Api/LeCoffreApi/sdk/DocumentTypeService.ts index ef829988..2d3de4d2 100644 --- a/src/common/Api/LeCoffreApi/sdk/DocumentTypeService.ts +++ b/src/common/Api/LeCoffreApi/sdk/DocumentTypeService.ts @@ -11,7 +11,7 @@ export default class DocumentTypeService extends AbstractService { } public static createDocumentType(documentTypeData: any, validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/common/Api/LeCoffreApi/sdk/FileService.ts b/src/common/Api/LeCoffreApi/sdk/FileService.ts index 2212ed12..1a38e2c3 100644 --- a/src/common/Api/LeCoffreApi/sdk/FileService.ts +++ b/src/common/Api/LeCoffreApi/sdk/FileService.ts @@ -12,7 +12,7 @@ export default class FileService { private constructor() { } public static createFile(fileData: FileData, validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/common/Api/LeCoffreApi/sdk/FolderService.ts b/src/common/Api/LeCoffreApi/sdk/FolderService.ts index a20be304..9413cc73 100644 --- a/src/common/Api/LeCoffreApi/sdk/FolderService.ts +++ b/src/common/Api/LeCoffreApi/sdk/FolderService.ts @@ -18,7 +18,7 @@ export default class FolderService extends AbstractService { } public static createFolder(folderData: any, stakeholdersId: string[], customersId: string[]): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/common/Api/LeCoffreApi/sdk/ImportData.ts b/src/common/Api/LeCoffreApi/sdk/ImportData.ts index 890663dc..2a2318e5 100644 --- a/src/common/Api/LeCoffreApi/sdk/ImportData.ts +++ b/src/common/Api/LeCoffreApi/sdk/ImportData.ts @@ -104,7 +104,7 @@ export default class ImportData { } private static async done(validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/common/Api/LeCoffreApi/sdk/NoteService.ts b/src/common/Api/LeCoffreApi/sdk/NoteService.ts index afb1b7e7..bf7254ea 100644 --- a/src/common/Api/LeCoffreApi/sdk/NoteService.ts +++ b/src/common/Api/LeCoffreApi/sdk/NoteService.ts @@ -10,7 +10,7 @@ export default class NoteService { private constructor() { } public static createNote(noteData: any, validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/common/Api/LeCoffreApi/sdk/OfficeRibService.ts b/src/common/Api/LeCoffreApi/sdk/OfficeRibService.ts index e5b488ef..1e3cc802 100644 --- a/src/common/Api/LeCoffreApi/sdk/OfficeRibService.ts +++ b/src/common/Api/LeCoffreApi/sdk/OfficeRibService.ts @@ -12,7 +12,7 @@ export default class OfficeRibService { private constructor() { } public static createOfficeRib(fileData: FileData, validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/common/Api/LeCoffreApi/sdk/OfficeRoleService.ts b/src/common/Api/LeCoffreApi/sdk/OfficeRoleService.ts index ef3c0bd9..a9aabc1d 100644 --- a/src/common/Api/LeCoffreApi/sdk/OfficeRoleService.ts +++ b/src/common/Api/LeCoffreApi/sdk/OfficeRoleService.ts @@ -14,7 +14,7 @@ export default class OfficeRoleService extends AbstractService { } public static createOfficeRole(roleData: any, validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/common/Api/LeCoffreApi/sdk/OfficeService.ts b/src/common/Api/LeCoffreApi/sdk/OfficeService.ts index a207d3bb..4b139c9f 100644 --- a/src/common/Api/LeCoffreApi/sdk/OfficeService.ts +++ b/src/common/Api/LeCoffreApi/sdk/OfficeService.ts @@ -11,7 +11,7 @@ export default class OfficeService extends AbstractService { } public static createOffice(officeData: any, validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/common/Api/LeCoffreApi/sdk/RoleService.ts b/src/common/Api/LeCoffreApi/sdk/RoleService.ts index 0572e393..6f21a627 100644 --- a/src/common/Api/LeCoffreApi/sdk/RoleService.ts +++ b/src/common/Api/LeCoffreApi/sdk/RoleService.ts @@ -11,7 +11,7 @@ export default class RoleService extends AbstractService { } public static createRole(roleData: any, validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/common/Api/LeCoffreApi/sdk/RuleGroupService.ts b/src/common/Api/LeCoffreApi/sdk/RuleGroupService.ts index 0619b95c..c0775cde 100644 --- a/src/common/Api/LeCoffreApi/sdk/RuleGroupService.ts +++ b/src/common/Api/LeCoffreApi/sdk/RuleGroupService.ts @@ -13,7 +13,7 @@ export default class RuleGroupService extends AbstractService { } public static createRuleGroup(ruleGroupData: any, validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/common/Api/LeCoffreApi/sdk/RuleService.ts b/src/common/Api/LeCoffreApi/sdk/RuleService.ts index a7d1cc1c..9fd9bb4d 100644 --- a/src/common/Api/LeCoffreApi/sdk/RuleService.ts +++ b/src/common/Api/LeCoffreApi/sdk/RuleService.ts @@ -11,7 +11,7 @@ export default class RuleService extends AbstractService { } public static createRule(ruleData: any, validatorId: string): Promise { - const ownerId = User.getInstance().getPairingId()!; + const ownerId: string = User.getInstance().getPairingId()!; const processData: any = { uid: uuidv4(), diff --git a/src/front/Api/LeCoffreApi/Notary/Customers/Customers.ts b/src/front/Api/LeCoffreApi/Notary/Customers/Customers.ts index 36b113d8..a36c547b 100644 --- a/src/front/Api/LeCoffreApi/Notary/Customers/Customers.ts +++ b/src/front/Api/LeCoffreApi/Notary/Customers/Customers.ts @@ -88,15 +88,15 @@ export default class Customers extends BaseNotary { } } - public async sendReminder(uid: string, documentsUid: string[]): Promise { + public async sendReminder(office: any, customer: any): Promise { // TODO: review const baseBackUrl = 'http://localhost:8080';//variables.BACK_API_PROTOCOL + variables.BACK_API_HOST; - const url = new URL(`${baseBackUrl}/api/${uid}/send_reminder`); + const url = new URL(`${baseBackUrl}/api/send_reminder`); //const url = new URL(this.baseURl.concat(`/${uid}/send_reminder`)); try { - await this.postRequest(url, { email: 'ja.janin.anthony@gmail.com', documentsUid }); + await this.postRequest(url, { office, customer }); } catch (err) { this.onError(err); return Promise.reject(err); diff --git a/src/front/Components/Layouts/DeedTypes/DeedTypesCreate/index.tsx b/src/front/Components/Layouts/DeedTypes/DeedTypesCreate/index.tsx index c93c3507..c914ea78 100644 --- a/src/front/Components/Layouts/DeedTypes/DeedTypesCreate/index.tsx +++ b/src/front/Components/Layouts/DeedTypes/DeedTypesCreate/index.tsx @@ -7,7 +7,6 @@ import Typography, { ETypo } from "@Front/Components/DesignSystem/Typography"; import DefaultDeedTypesDashboard from "@Front/Components/LayoutTemplates/DefaultDeedTypeDashboard"; import { ToasterService } from "@Front/Components/DesignSystem/Toaster"; import Module from "@Front/Config/Module"; -import JwtService from "@Front/Services/JwtService/JwtService"; import { DeedType, Office } from "le-coffre-resources/dist/Admin"; import { useRouter } from "next/router"; import { useCallback, useState } from "react"; @@ -15,8 +14,10 @@ import { useCallback, useState } from "react"; import classes from "./classes.module.scss"; import { validateOrReject, ValidationError } from "class-validator"; -import DeedTypeService from "src/common/Api/LeCoffreApi/sdk/DeedTypeService"; +import UserStore from "@Front/Stores/UserStore"; + import LoaderService from "src/common/Api/LeCoffreApi/sdk/Loader/LoaderService"; +import DeedTypeService from "src/common/Api/LeCoffreApi/sdk/DeedTypeService"; type IProps = {}; export default function DeedTypesCreate(props: IProps) { @@ -28,8 +29,8 @@ export default function DeedTypesCreate(props: IProps) { const onSubmitHandler = useCallback( async (e: React.FormEvent | null, values: { [key: string]: string }) => { try { - // TODO: review - const officeId = 'demo_notary_office_id'; //JwtService.getInstance().decodeJwt()?.office_Id; + const user: any = UserStore.instance.getUser(); + const officeId: string = user.office.uid; const deedType = DeedType.hydrate({ name: values["name"], diff --git a/src/front/Components/Layouts/DeedTypes/DeedTypesInformations/index.tsx b/src/front/Components/Layouts/DeedTypes/DeedTypesInformations/index.tsx index d718768f..c05d984b 100644 --- a/src/front/Components/Layouts/DeedTypes/DeedTypesInformations/index.tsx +++ b/src/front/Components/Layouts/DeedTypes/DeedTypesInformations/index.tsx @@ -79,6 +79,7 @@ export default function DeedTypesInformations(props: IProps) { async function getDeedType() { if (!deedTypeUid) return; + setSelectedDocuments([]); DeedTypeService.getDeedTypeByUid(deedTypeUid as string).then((process: any) => { if (process) { const deedType: any = process.processData; @@ -99,6 +100,7 @@ export default function DeedTypesInformations(props: IProps) { } async function getDocuments() { + setAvailableDocuments([]); DocumentTypeService.getDocumentTypes().then((processes: any[]) => { if (processes.length) { const documents: any[] = processes.map((process: any) => process.processData); @@ -128,8 +130,8 @@ export default function DeedTypesInformations(props: IProps) { if (!document_types) { document_types = []; } - selectedDocuments.map((selectedDocument: any) => ({ uid: selectedDocument.id as string })) - .forEach((selectedDocument: any) => document_types.push(selectedDocument)); + selectedDocuments.map((selectedDocument: any) => selectedDocument.id as string) + .forEach((uid: any) => document_types.push(availableDocuments.find((document: any) => document.uid === uid))); // New data const newData: any = { diff --git a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/EmailReminder/ReminderModal/index.tsx b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/EmailReminder/ReminderModal/index.tsx index 58ed5d47..3dca73f1 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/EmailReminder/ReminderModal/index.tsx +++ b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/EmailReminder/ReminderModal/index.tsx @@ -11,6 +11,11 @@ import React, { useCallback, useMemo, useState } from "react"; import classes from "./classes.module.scss"; +import CustomerService from "src/common/Api/LeCoffreApi/sdk/CustomerService"; +import DocumentService from "src/common/Api/LeCoffreApi/sdk/DocumentService"; +import LoaderService from "src/common/Api/LeCoffreApi/sdk/Loader/LoaderService"; +import UserStore from "@Front/Stores/UserStore"; + type IProps = { isOpen: boolean; onClose?: () => void; @@ -23,9 +28,24 @@ export default function ReminderModal(props: IProps) { const [selectedOptions, setSelectedOptions] = useState([]); const [isAllSelected, setIsAllSelected] = useState(false); - const onRemind = useCallback(() => { + const onRemind = useCallback(async () => { + LoaderService.getInstance().show(); + + const documentUids: string[] = selectedOptions.map((option) => option.value) as string[]; + + const user: any = UserStore.instance.getUser(); + const _office: any = user.office; + + const _documents: any[] = []; + for (const documentUid of documentUids) { + _documents.push((await DocumentService.getDocumentByUid(documentUid)).processData); + } + const _customer = (await CustomerService.getCustomerByUid(customer.uid!)).processData; + + LoaderService.getInstance().hide(); + Customers.getInstance() - .sendReminder(customer.uid!, selectedOptions.map((option) => option.value) as string[]) + .sendReminder(_office, _customer) .then(onRemindSuccess) .then(() => ToasterService.getInstance().success({ title: "Succès !", description: "La relance a été envoyée avec succès." })) .then(onClose);