import BaseApiService from "@Front/Api/BaseApiService"; import { FrontendVariables } from "@Front/Config/VariablesFront"; //import User from "le-coffre-resources/dist/SuperAdmin"; export default class Auth extends BaseApiService { private static instance: Auth; private constructor() { super(); } public static getInstance(): Auth { return (this.instance = this.instance ?? new this()); } public async logOutWithIdNot() { const variables = FrontendVariables.getInstance(); const url = new URL(`${variables.IDNOT_BASE_URL}/user/auth/logout?post_logout_redirect_uri=${variables.FRONT_APP_HOST}`); try { return await fetch(url); } catch (err) { console.error(err); this.onError(err); return Promise.reject(err); } } public async loginWithIdNot() { const variables = FrontendVariables.getInstance(); const url = new URL( `${variables.IDNOT_BASE_URL + variables.IDNOT_AUTHORIZE_ENDPOINT}?client_id=${variables.IDNOT_CLIENT_ID}&redirect_uri=${ variables.FRONT_APP_HOST }/authorized-client&scope=openid,profile&response_type=code`, ); try { return await this.getRequest(url); } catch (err) { this.onError(err); return Promise.reject(err); } } public async idNotAuth(autorizationCode: string | string[]): Promise<{ idNotUser: any; authToken: string }> { const variables = FrontendVariables.getInstance(); const url = new URL(`${variables.BACK_API_PROTOCOL}://${variables.BACK_API_HOST}:${variables.BACK_API_PORT}/api/v1/idnot/auth/${autorizationCode}`); try { return await this.postRequest<{ idNotUser: any; authToken: string }>(url); } catch (err) { this.onError(err); return Promise.reject(err); } } public async getIdNotUser(): Promise<{ success: boolean; data: any }> { const variables = FrontendVariables.getInstance(); const url = new URL(`${variables.BACK_API_PROTOCOL}://${variables.BACK_API_HOST}:${variables.BACK_API_PORT}/api/v1/idnot/user`); try { return await this.getRequest(url); } catch (err) { this.onError(err); return Promise.reject(err); } } public async getIdNotOfficeForUser(userId: string): Promise { const variables = FrontendVariables.getInstance(); const url = new URL(`${variables.BACK_API_PROTOCOL}://${variables.BACK_API_HOST}:${variables.BACK_API_PORT}/api/v1/idnot/user/rattachements`); url.searchParams.set('idNot', userId); try { return await this.getRequest(url); } catch (err) { this.onError(err); return Promise.reject(err); } } public async getIdNotUserForOffice(officeId: string): Promise { const variables = FrontendVariables.getInstance(); const url = new URL(`${variables.BACK_API_PROTOCOL}://${variables.BACK_API_HOST}:${variables.BACK_API_PORT}/api/v1/idnot/office/rattachements`); url.searchParams.set('idNot', officeId); try { return await this.getRequest(url); } catch (err) { this.onError(err); return Promise.reject(err); } } public async getUserProcessByIdNot(pairingId: string): Promise<{ success: boolean; data: { processId: string, processData: { [key: string]: any } } }> { const variables = FrontendVariables.getInstance(); const url = new URL(`${variables.BACK_API_PROTOCOL}://${variables.BACK_API_HOST}:${variables.BACK_API_PORT}/api/v1/process/user`); url.searchParams.set('pairingId', pairingId); try { return await this.getRequest(url); } catch (err) { this.onError(err); return Promise.reject(err); } } public async getOfficeProcessByIdNot(): Promise<{ success: boolean; data: { processId: string, processData: { [key: string]: any } } }> { const variables = FrontendVariables.getInstance(); const url = new URL(`${variables.BACK_API_PROTOCOL}://${variables.BACK_API_HOST}:${variables.BACK_API_PORT}/api/v1/process/office`); try { return await this.getRequest(url); } catch (err) { this.onError(err); return Promise.reject(err); } } }