[cookie] have leCoffreUserInfo and leCoffreOfficeInfo

This commit is contained in:
Sosthene 2025-09-11 09:04:25 +02:00
parent 2455e2cca2
commit ad78491a90

View File

@ -12,14 +12,18 @@ export default class UserStore {
private constructor() { } private constructor() { }
public isConnected(): boolean { 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 { try {
if (!user || !office) {
throw new Error("UserStore: User or office not provided");
}
//Save tokens in cookies //Save tokens in cookies
CookieService.getInstance().setCookie("leCoffreAccessToken", JSON.stringify(user)); CookieService.getInstance().setCookie("leCoffreUserInfo", JSON.stringify(user));
this.event.emit("connection", CookieService.getInstance().getCookie("leCoffreAccessToken")); CookieService.getInstance().setCookie("leCoffreOfficeInfo", JSON.stringify(office));
this.event.emit("connection", CookieService.getInstance().getCookie("leCoffreUserInfo"), CookieService.getInstance().getCookie("leCoffreOfficeInfo"));
} catch (error) { } catch (error) {
console.error(error); console.error(error);
return false; return false;
@ -32,24 +36,47 @@ export default class UserStore {
User.getInstance().clear(); User.getInstance().clear();
//Remove tokens from cookies //Remove tokens from cookies
CookieService.getInstance().deleteCookie("leCoffreAccessToken"); CookieService.getInstance().deleteCookie("leCoffreUserInfo");
this.event.emit("disconnection", CookieService.getInstance().getCookie("leCoffreAccessToken")); CookieService.getInstance().deleteCookie("leCoffreOfficeInfo");
this.event.emit("disconnection", CookieService.getInstance().getCookie("leCoffreUserInfo"));
} catch (error) { } catch (error) {
console.error(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); this.event.on("disconnection", callback);
return () => this.event.off("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); this.event.on("connection", callback);
return () => this.event.off("connection", callback); return () => this.event.off("connection", callback);
} }
public getUser(): any { public getUser(): any | null {
return JSON.parse(CookieService.getInstance().getCookie("leCoffreAccessToken") || ""); 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;
}
} }
} }