import { string } from 'alga-js' import refreshTokenHelper from "../../../utils/refreshTokenHelper" import forceLogoutHelper from "../../../utils/forceLogoutHelper" import errorHandlingHelper from "../../../utils/errorHandlingHelper" import fetchHelper from "../../../utils/fetchHelper" // Agreement notes for a business partner. // Stored one row per agreement in iDempiere table CUST_Agreement_CBartner, // ordered newest-first by DateFrom. const handleFunc = async (event: any, authToken: any = null) => { let data: any = {} const token = authToken ?? await getTokenHelper(event) const query = getQuery(event) const bpartnerId = query.bpartnerId // Without a partner we have nothing to scope to — return an empty list. if(!bpartnerId) { return { records: [], 'row-count': 0 } } const filter = string.urlEncode('C_BPartner_ID eq ' + bpartnerId + ' AND IsActive eq true') const orderby = string.urlEncode('DateFrom desc') const res: any = await fetchHelper(event, `models/cust_agreement_cbartner?$filter=${filter}&$orderby=${orderby}`, 'GET', token, null) if(res) { data = res } return data } 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) if([401, 402, 403, 407].includes(Number(data.status))) { //@ts-ignore setCookie(event, 'user', null) } } } return data })