import { PipesClientResponseHelper, RequestBuilder, } from "@applicaster/zapp-pipes-v2-client"; import { log_debug, log_error } from "./logger"; export const requestToSkipHook = async ( dataSource: ZappDataSource, payload: ZappEntry ): Promise => { try { const requestBuilder = new RequestBuilder() .setEntryContext(payload) // @ts-ignore: empty screen context is acceptable for this request .setScreenContext({}) .setUrl(dataSource.source, dataSource.mapping); const request = await requestBuilder.buildAxiosRequest(); log_debug( `requestToSkipHook: Request built for source: ${ request?.url || dataSource.source }`, { ...request, source: dataSource.source } ); const responseObject = await requestBuilder.call(); const responseHelper = new PipesClientResponseHelper(responseObject); const error = responseHelper.error; const logData = responseHelper.getLogsData(); if (error) { log_error(`requestToSkipHook: Error: ${error.message}`, { response: logData, }); throw error; } log_debug( `requestToSkipHook: Request received successfully. Status: ${responseHelper.statusCode}`, { response: logData } ); // Non-empty body = skip the hook (same contract as hook-screen-wrapper) return Boolean(responseHelper.responseData); } catch (error) { log_error(`requestToSkipHook: Error: ${error.message}`, { error }); throw error; } };