mirror of
https://github.com/sasjs/adapter.git
synced 2026-01-07 04:20:05 +00:00
31 lines
1.0 KiB
TypeScript
31 lines
1.0 KiB
TypeScript
import { RequestClient } from '../request/RequestClient'
|
|
import { getValidJson } from '../utils'
|
|
|
|
/**
|
|
* When querying a Viya job using the Web approach (as opposed to using the APIs) with _DEBUG enabled,
|
|
* the first response contains the log with the content in an iframe. Therefore when debug is enabled,
|
|
* and the serverType is VIYA, and useComputeApi is null (WEB), we call this function to extract the
|
|
* (_webout) content from the iframe.
|
|
* @param response - first response from viya job
|
|
* @param requestClient
|
|
* @param serverUrl
|
|
* @returns
|
|
*/
|
|
export const parseSasViyaDebugResponse = async (
|
|
response: string,
|
|
requestClient: RequestClient,
|
|
serverUrl: string
|
|
) => {
|
|
const iframeStart = response.split(
|
|
'<iframe style="width: 99%; height: 500px" src="'
|
|
)[1]
|
|
const jsonUrl = iframeStart ? iframeStart.split('"></iframe>')[0] : null
|
|
if (!jsonUrl) {
|
|
throw new Error('Unable to find webout file URL.')
|
|
}
|
|
|
|
return requestClient
|
|
.get(serverUrl + jsonUrl, undefined)
|
|
.then((res: any) => getValidJson(res.result))
|
|
}
|