1
0
mirror of https://github.com/sasjs/adapter.git synced 2026-01-11 06:10:05 +00:00
Files
adapter/src/SAS9ApiClient.ts
2020-09-07 16:32:53 +03:00

56 lines
1.3 KiB
TypeScript

import { isUrl } from './utils'
/**
* A client for interfacing with the SAS9 REST API
*
*/
export class SAS9ApiClient {
constructor(private serverUrl: string) {
if (serverUrl) isUrl(serverUrl)
}
/**
* returns on object containing the server URL
*/
public getConfig() {
return {
serverUrl: this.serverUrl
}
}
/**
* Updates serverurl which is not null
* @param serverUrl - the URL of the server.
*/
public setConfig(serverUrl: string) {
if (serverUrl) this.serverUrl = serverUrl
}
/**
* Executes code on a SAS9 server.
* @param linesOfCode - an array of lines of code to execute
* @param serverName - the server to execute the code on
* @param repositoryName - the repository to execute the code on
*/
public async executeScript(
linesOfCode: string[],
serverName: string,
repositoryName: string
) {
const requestPayload = linesOfCode.join('\n')
const executeScriptRequest = {
method: 'PUT',
headers: {
Accept: 'application/json'
},
body: `command=${requestPayload}`
}
const executeScriptResponse = await fetch(
`${this.serverUrl}/sas/servers/${serverName}/cmd?repositoryName=${repositoryName}`,
executeScriptRequest
).then((res) => res.text())
return executeScriptResponse
}
}