import refreshTokenHelper from "../../../utils/refreshTokenHelper" import getTokenHelper from "../../../utils/getTokenHelper" import forceLogoutHelper from "../../../utils/forceLogoutHelper" import errorHandlingHelper from "../../../utils/errorHandlingHelper" import { parseIdList } from "../../../utils/bankReconciliation" import { computeLineSuggestions } from "../../../utils/bankReconciliationSuggestions" // GET /api/accounting/bank-reconciliation/suggestions?ids=1,2,3 // Match suggestions for the unmatched lines of MANY statements in one call // (the "Alle Auszüge" view of the reconcile tab). Same engine as // {id}/suggestions — open invoices + allocations are fetched only once. const handleFunc = async (event: any, authToken: any = null) => { const token = authToken ?? await getTokenHelper(event) const ids = parseIdList(getQuery(event).ids) if (!ids.length) { return { status: 200, suggestions: {} } } return { status: 200, suggestions: await computeLineSuggestions(event, token, ids) } } export default defineEventHandler(async (event) => { let data: any = {} try { data = await handleFunc(event) } catch (err: any) { try { let authToken: any = await refreshTokenHelper(event) data = await handleFunc(event, authToken) } catch (error) { data = errorHandlingHelper(err?.data ?? err, error?.data ?? error) forceLogoutHelper(event, data) } } return data })