/** * Shared bits of the Amazon Ads invoice routes (server/api/accounting/amazon-ads/*). */ import refreshTokenHelper from '../refreshTokenHelper' import errorHandlingHelper from '../errorHandlingHelper' /** Standard try → refresh → retry wrapper used by every route here. */ export const withRefresh = (handleFunc: (event: any, token?: string | null) => Promise) => defineEventHandler(async (event) => { let data: any = {} try { data = await handleFunc(event) } catch (err: any) { try { data = await handleFunc(event, await refreshTokenHelper(event)) } catch (error: any) { data = errorHandlingHelper(err?.data ?? err, error?.data ?? error) } } return data }) export const orgIdOf = (event: any) => Number(getCookie(event, 'logship_organization_id') || 0) export const userNameOf = (event: any) => { try { const u = JSON.parse(getCookie(event, 'logship_user') || 'null'); return u?.name || u?.Name || null } catch { return null } }