/** * Shared try/refresh/catch wrapper for the carrier-rate routes (same contract as * every other settings route: handleFunc(event, token) → data; 401 → refresh → retry). */ import refreshTokenHelper from '../refreshTokenHelper' import forceLogoutHelper from '../forceLogoutHelper' import errorHandlingHelper from '../errorHandlingHelper' export const withIdempiere = (handleFunc: (event: any, token: string) => Promise) => async (event: any) => { let data: any = {} try { const token = await getTokenHelper(event) data = await handleFunc(event, token) } catch (err: any) { try { const authToken: any = await refreshTokenHelper(event) data = await handleFunc(event, authToken) } catch (error: any) { data = errorHandlingHelper(err?.data ?? err, error?.data ?? error) forceLogoutHelper(event, data) } } return data }