import refreshTokenHelper from "../../../utils/refreshTokenHelper" import forceLogoutHelper from "../../../utils/forceLogoutHelper" import errorHandlingHelper from "../../../utils/errorHandlingHelper" import { runMarketplaceOrdersSync } from "../../../utils/marketplaceOrderSync" // Reconciliation WRITE endpoint for the eBay Bestellabgleich page. Thin wrapper over // the shared marketplace sync core (server/utils/marketplaceOrderSync.ts) — identical // reactivate→add-adjustment-line→complete logic as Amazon, only the linkage differs. // eBay orders are linked via ebay_order_id (with ExternalOrderId as fallback). The // difference-adjustment charge is shared (AMAZON_ADJUSTMENT_CHARGE_ID). const handleFunc = async (event: any, authToken: any = null) => { const token = authToken ?? await getTokenHelper(event) const body = await readBody(event) const adjustmentChargeId = Number(useRuntimeConfig(event)?.api?.amazonAdjustmentChargeId) || 0 return await runMarketplaceOrdersSync(event, token, { items: body?.items, syncAmount: body?.syncAmount === true, syncDate: body?.syncDate === true, adjustmentChargeId, linkIdFields: ['ebay_order_id', 'ExternalOrderId'] }) } 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: any) { data = errorHandlingHelper(err?.data ?? err, error?.data ?? error) forceLogoutHelper(event, data) } } return data })