From ad78491a90c2922d51984417ff5821a201187c9a Mon Sep 17 00:00:00 2001 From: Sosthene Date: Thu, 11 Sep 2025 09:04:25 +0200 Subject: [PATCH] [cookie] have leCoffreUserInfo and leCoffreOfficeInfo --- src/front/Stores/UserStore.ts | 47 +++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/src/front/Stores/UserStore.ts b/src/front/Stores/UserStore.ts index 6aa75034..488efcbe 100644 --- a/src/front/Stores/UserStore.ts +++ b/src/front/Stores/UserStore.ts @@ -12,14 +12,18 @@ export default class UserStore { private constructor() { } public isConnected(): boolean { - return !!CookieService.getInstance().getCookie("leCoffreAccessToken"); + return !!CookieService.getInstance().getCookie("leCoffreAccessToken") && !!CookieService.getInstance().getCookie("leCoffreUserInfo") && !!CookieService.getInstance().getCookie("leCoffreOfficeInfo"); } - public async connect(user: any) { + public async connect(user: any, office: any) { try { + if (!user || !office) { + throw new Error("UserStore: User or office not provided"); + } //Save tokens in cookies - CookieService.getInstance().setCookie("leCoffreAccessToken", JSON.stringify(user)); - this.event.emit("connection", CookieService.getInstance().getCookie("leCoffreAccessToken")); + CookieService.getInstance().setCookie("leCoffreUserInfo", JSON.stringify(user)); + CookieService.getInstance().setCookie("leCoffreOfficeInfo", JSON.stringify(office)); + this.event.emit("connection", CookieService.getInstance().getCookie("leCoffreUserInfo"), CookieService.getInstance().getCookie("leCoffreOfficeInfo")); } catch (error) { console.error(error); return false; @@ -32,24 +36,47 @@ export default class UserStore { User.getInstance().clear(); //Remove tokens from cookies - CookieService.getInstance().deleteCookie("leCoffreAccessToken"); - this.event.emit("disconnection", CookieService.getInstance().getCookie("leCoffreAccessToken")); + CookieService.getInstance().deleteCookie("leCoffreUserInfo"); + CookieService.getInstance().deleteCookie("leCoffreOfficeInfo"); + this.event.emit("disconnection", CookieService.getInstance().getCookie("leCoffreUserInfo")); } catch (error) { console.error(error); } } - public onDisconnect(callback: (userAddress: string) => void): () => void { + public onDisconnect(callback: (userAddress: string, officeAddress: string) => void): () => void { this.event.on("disconnection", callback); return () => this.event.off("disconnection", callback); } - public onConnect(callback: (userAddress: string) => void): () => void { + public onConnect(callback: (userAddress: string, officeAddress: string) => void): () => void { this.event.on("connection", callback); return () => this.event.off("connection", callback); } - public getUser(): any { - return JSON.parse(CookieService.getInstance().getCookie("leCoffreAccessToken") || ""); + public getUser(): any | null { + try { + const cookie = CookieService.getInstance().getCookie("leCoffreUserInfo"); + if (!cookie) return null; + + const parsed = JSON.parse(cookie); + return parsed || null; + } catch (error) { + console.error("UserStore: Error parsing user cookie:", error); + return null; + } + } + + public getOffice(): any | null { + try { + const cookie = CookieService.getInstance().getCookie("leCoffreOfficeInfo"); + if (!cookie) return null; + + const parsed = JSON.parse(cookie); + return parsed || null; + } catch (error) { + console.error("UserStore: Error parsing office cookie:", error); + return null; + } } }