import refreshTokenHelper from "../../../../utils/refreshTokenHelper" import forceLogoutHelper from "../../../../utils/forceLogoutHelper" import errorHandlingHelper from "../../../../utils/errorHandlingHelper" import { runProductsGrid } from '../../../../utils/productsGrid' // Products list (AG Grid server-side rows). The query/mapping body lives in // server/utils/productsGrid.ts and is shared with ag-grid/products-v2. const handleFunc = async (event: any, authToken: any = null) => { const token = authToken ?? await getTokenHelper(event) const body = await readBody(event) return runProductsGrid(event, token, body) } export default defineEventHandler(async (event) => { let data: any = {} try { console.log('[Products AG Grid] handleFunc attempt 1') data = await handleFunc(event) console.log('[Products AG Grid] Success - rows:', data?.rows?.length, 'lastRow:', data?.lastRow) } catch (err: any) { console.log('[Products AG Grid] First attempt failed:', err?.statusCode || err?.message || err) try { let authToken: any = await refreshTokenHelper(event) console.log('[Products AG Grid] Got refresh token, retrying handleFunc') data = await handleFunc(event, authToken) console.log('[Products AG Grid] Retry success - rows:', data?.rows?.length, 'lastRow:', data?.lastRow) } catch (error: any) { console.log('[Products AG Grid] Retry also failed:', error?.statusCode || error?.message || error) data = errorHandlingHelper(err?.data ?? err, error?.data ?? error) forceLogoutHelper(event, data) } } return data })