From aae8463185a1174de335c46cb545e903ad58e1bd Mon Sep 17 00:00:00 2001 From: Vins Date: Fri, 16 Feb 2024 17:09:40 +0100 Subject: [PATCH] Fixed --- .../Customer/OfficeRib/OfficeRib.ts | 36 +++++++++++++++++++ .../Bucket.ts => OfficeRib/OfficeRib.ts} | 16 ++++----- .../Layouts/ClientDashboard/index.tsx | 17 +++++++++ src/front/Components/Layouts/Rib/index.tsx | 13 +++---- .../[officeUid] => offices/rib}/index.tsx | 0 5 files changed, 65 insertions(+), 17 deletions(-) create mode 100644 src/front/Api/LeCoffreApi/Customer/OfficeRib/OfficeRib.ts rename src/front/Api/LeCoffreApi/Notary/{Bucket/Bucket.ts => OfficeRib/OfficeRib.ts} (70%) rename src/pages/{rib/[officeUid] => offices/rib}/index.tsx (100%) diff --git a/src/front/Api/LeCoffreApi/Customer/OfficeRib/OfficeRib.ts b/src/front/Api/LeCoffreApi/Customer/OfficeRib/OfficeRib.ts new file mode 100644 index 00000000..23faeb0e --- /dev/null +++ b/src/front/Api/LeCoffreApi/Customer/OfficeRib/OfficeRib.ts @@ -0,0 +1,36 @@ +import BaseNotary from "../BaseCustomer"; + +// TODO Type get query params -> Where + inclue + orderby +export interface IGetFilesparams { + where?: {}; + include?: {}; +} + +// TODO Type getbyuid query params + +export type IPutFilesParams = {}; + +export interface IPostFilesParams {} + +export default class OfficeRib extends BaseNotary { + private static instance: OfficeRib; + private readonly baseURl = this.namespaceUrl.concat("/office"); + + private constructor() { + super(); + } + + public static getInstance() { + return (this.instance ??= new this()); + } + + public async getRibStream(uid: string) { + const url = new URL(this.baseURl.concat(`/${uid}/rib`)); + try { + return await this.getRequest(url); + } catch (err) { + this.onError(err); + return Promise.reject(err); + } + } +} diff --git a/src/front/Api/LeCoffreApi/Notary/Bucket/Bucket.ts b/src/front/Api/LeCoffreApi/Notary/OfficeRib/OfficeRib.ts similarity index 70% rename from src/front/Api/LeCoffreApi/Notary/Bucket/Bucket.ts rename to src/front/Api/LeCoffreApi/Notary/OfficeRib/OfficeRib.ts index 28c57988..9390fddc 100644 --- a/src/front/Api/LeCoffreApi/Notary/Bucket/Bucket.ts +++ b/src/front/Api/LeCoffreApi/Notary/OfficeRib/OfficeRib.ts @@ -1,4 +1,4 @@ -import BaseNotary from "../../Notary/BaseNotary"; +import BaseNotary from "../BaseNotary"; // TODO Type get query params -> Where + inclue + orderby export interface IGetFilesparams { @@ -12,9 +12,9 @@ export type IPutFilesParams = {}; export interface IPostFilesParams {} -export default class Bucket extends BaseNotary { - private static instance: Bucket; - private readonly baseURl = this.namespaceUrl.concat("/bucket"); +export default class OfficeRib extends BaseNotary { + private static instance: OfficeRib; + private readonly baseURl = this.namespaceUrl.concat("/office/rib"); private constructor() { super(); @@ -24,8 +24,8 @@ export default class Bucket extends BaseNotary { return (this.instance ??= new this()); } - public async getRibStream(uid: string) { - const url = new URL(this.baseURl.concat(`/${uid}`)); + public async getRibStream() { + const url = new URL(this.baseURl); try { return await this.getRequest(url); } catch (err) { @@ -50,8 +50,8 @@ export default class Bucket extends BaseNotary { /** * @description : Delete a File */ - public async delete(uid: string) { - const url = new URL(this.baseURl.concat(`/${uid}`)); + public async delete() { + const url = new URL(this.baseURl); try { return await this.deleteRequest(url); } catch (err) { diff --git a/src/front/Components/Layouts/ClientDashboard/index.tsx b/src/front/Components/Layouts/ClientDashboard/index.tsx index e4383649..a12658f7 100644 --- a/src/front/Components/Layouts/ClientDashboard/index.tsx +++ b/src/front/Components/Layouts/ClientDashboard/index.tsx @@ -12,6 +12,7 @@ import { useRouter } from "next/router"; import JwtService, { ICustomerJwtPayload } from "@Front/Services/JwtService/JwtService"; import DepositOtherDocument from "@Front/Components/DesignSystem/DepositOtherDocument"; import Folders from "@Front/Api/LeCoffreApi/Customer/Folders/Folders"; +import OfficeRib from "@Front/Api/LeCoffreApi/Customer/OfficeRib/OfficeRib"; type IProps = {}; @@ -71,6 +72,20 @@ export default function ClientDashboard(props: IProps) { setIsAddDocumentModalVisible(true); }, []); + async function downloadFile() { + if (!folder?.office?.uid) return; + const blob = await OfficeRib.getInstance().getRibStream(folder.office.uid); + const ribUrl = URL.createObjectURL(blob); + + if (!ribUrl) return; + const a = document.createElement("a"); + a.style.display = "none"; + a.href = ribUrl; + a.download = ""; + document.body.appendChild(a); + a.click(); + } + useEffect(() => { getDocuments(); }, [folderUid, getDocuments]); @@ -102,6 +117,8 @@ export default function ClientDashboard(props: IProps) { sélectionnez le document correspondant.
En déposant un document, celui-ci est automatiquement enregistré et transmis à votre notaire. + + ); diff --git a/src/front/Components/Layouts/Rib/index.tsx b/src/front/Components/Layouts/Rib/index.tsx index bd5a11f7..b6b7fe39 100644 --- a/src/front/Components/Layouts/Rib/index.tsx +++ b/src/front/Components/Layouts/Rib/index.tsx @@ -5,7 +5,7 @@ import DefaultTemplate from "@Front/Components/LayoutTemplates/DefaultTemplate"; import FilePreview from "@Front/Components/DesignSystem/FilePreview"; import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button"; import { useRouter } from "next/router"; -import Bucket from "@Front/Api/LeCoffreApi/Notary/Bucket/Bucket"; +import OfficeRib from "@Front/Api/LeCoffreApi/Notary/OfficeRib/OfficeRib"; import DepositRib from "@Front/Components/DesignSystem/DepositRib"; import Confirm from "@Front/Components/DesignSystem/Modal/Confirm"; @@ -22,11 +22,8 @@ export default function Rib() { //Put fetch data in a useCallback const fetchData = useCallback(async () => { - console.log("fetchData", officeUid); - - if (!officeUid) return; try { - const blob = await Bucket.getInstance().getRibStream(officeUid as string); + const blob = await OfficeRib.getInstance().getRibStream(); const ribUrl = URL.createObjectURL(blob); @@ -60,7 +57,7 @@ export default function Rib() { const formData = new FormData(); formData.append("file", documentList[0]!, documentList[0]!.name); - await Bucket.getInstance().post(formData); + await OfficeRib.getInstance().post(formData); onCloseRibModal(); fetchData(); @@ -76,9 +73,7 @@ export default function Rib() { } async function onDeleteModalAccepted() { - if (!officeUid) return; - const office = await Bucket.getInstance().delete(officeUid as string); - console.log(office); + await OfficeRib.getInstance().delete(); onCloseDeleteModal(); fetchData(); diff --git a/src/pages/rib/[officeUid]/index.tsx b/src/pages/offices/rib/index.tsx similarity index 100% rename from src/pages/rib/[officeUid]/index.tsx rename to src/pages/offices/rib/index.tsx