1
0
mirror of https://github.com/sasjs/adapter.git synced 2026-01-11 06:10:05 +00:00

Compare commits

..

1 Commits

Author SHA1 Message Date
a54df1e2cb fix: make ErrorBody interface public
So it could be used as a type in client
2022-03-18 17:12:49 +01:00
7 changed files with 31 additions and 53 deletions

14
package-lock.json generated
View File

@@ -8,7 +8,7 @@
"hasInstallScript": true, "hasInstallScript": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@sasjs/utils": "2.40.0", "@sasjs/utils": "2.36.1",
"axios": "0.26.0", "axios": "0.26.0",
"axios-cookiejar-support": "1.0.1", "axios-cookiejar-support": "1.0.1",
"form-data": "4.0.0", "form-data": "4.0.0",
@@ -1142,9 +1142,9 @@
} }
}, },
"node_modules/@sasjs/utils": { "node_modules/@sasjs/utils": {
"version": "2.40.0", "version": "2.36.1",
"resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-2.40.0.tgz", "resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-2.36.1.tgz",
"integrity": "sha512-U0y/eqRlvfkMHmKDlr1xmeN+Rask7TnJPuRpOz71P8QpGYTw1M9AyZvzRSk503p4KCJb8ysdcqXyGVLfhuoM+A==", "integrity": "sha512-JkGUpLOODsvkeU+S25jb9k2WnvzyD2w6cEk7YyQ/byuqKL8xawH91PPWegrVcJlDY8WmqKE4CPcA3d1mM3B3LA==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@types/fs-extra": "9.0.13", "@types/fs-extra": "9.0.13",
@@ -13870,9 +13870,9 @@
} }
}, },
"@sasjs/utils": { "@sasjs/utils": {
"version": "2.40.0", "version": "2.36.1",
"resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-2.40.0.tgz", "resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-2.36.1.tgz",
"integrity": "sha512-U0y/eqRlvfkMHmKDlr1xmeN+Rask7TnJPuRpOz71P8QpGYTw1M9AyZvzRSk503p4KCJb8ysdcqXyGVLfhuoM+A==", "integrity": "sha512-JkGUpLOODsvkeU+S25jb9k2WnvzyD2w6cEk7YyQ/byuqKL8xawH91PPWegrVcJlDY8WmqKE4CPcA3d1mM3B3LA==",
"requires": { "requires": {
"@types/fs-extra": "9.0.13", "@types/fs-extra": "9.0.13",
"@types/prompts": "2.0.13", "@types/prompts": "2.0.13",

View File

@@ -72,7 +72,7 @@
}, },
"main": "index.js", "main": "index.js",
"dependencies": { "dependencies": {
"@sasjs/utils": "2.40.0", "@sasjs/utils": "2.36.1",
"axios": "0.26.0", "axios": "0.26.0",
"axios-cookiejar-support": "1.0.1", "axios-cookiejar-support": "1.0.1",
"form-data": "4.0.0", "form-data": "4.0.0",

View File

@@ -17,8 +17,7 @@ import {
MacroVar, MacroVar,
AuthConfig, AuthConfig,
ExtraResponseAttributes, ExtraResponseAttributes,
SasAuthResponse, SasAuthResponse
StreamConfig
} from '@sasjs/utils/types' } from '@sasjs/utils/types'
import { RequestClient } from './request/RequestClient' import { RequestClient } from './request/RequestClient'
import { SasjsRequestClient } from './request/SasjsRequestClient' import { SasjsRequestClient } from './request/SasjsRequestClient'
@@ -135,7 +134,7 @@ export default class SASjs {
/** /**
* Gets compute contexts. * Gets compute contexts.
* @param accessToken - an access token for an authorised user. * @param accessToken - an access token for an authorized user.
*/ */
public async getComputeContexts(accessToken: string) { public async getComputeContexts(accessToken: string) {
this.isMethodSupported('getComputeContexts', [ServerType.SasViya]) this.isMethodSupported('getComputeContexts', [ServerType.SasViya])
@@ -145,7 +144,7 @@ export default class SASjs {
/** /**
* Gets launcher contexts. * Gets launcher contexts.
* @param accessToken - an access token for an authorised user. * @param accessToken - an access token for an authorized user.
*/ */
public async getLauncherContexts(accessToken: string) { public async getLauncherContexts(accessToken: string) {
this.isMethodSupported('getLauncherContexts', [ServerType.SasViya]) this.isMethodSupported('getLauncherContexts', [ServerType.SasViya])
@@ -164,7 +163,7 @@ export default class SASjs {
/** /**
* Gets executable compute contexts. * Gets executable compute contexts.
* @param authConfig - an access token, refresh token, client and secret for an authorised user. * @param authConfig - an access token, refresh token, client and secret for an authorized user.
*/ */
public async getExecutableContexts(authConfig: AuthConfig) { public async getExecutableContexts(authConfig: AuthConfig) {
this.isMethodSupported('getExecutableContexts', [ServerType.SasViya]) this.isMethodSupported('getExecutableContexts', [ServerType.SasViya])
@@ -178,8 +177,8 @@ export default class SASjs {
* @param launchContextName - the name of the launcher context used by the compute service. * @param launchContextName - the name of the launcher context used by the compute service.
* @param sharedAccountId - the ID of the account to run the servers for this context as. * @param sharedAccountId - the ID of the account to run the servers for this context as.
* @param autoExecLines - the lines of code to execute during session initialization. * @param autoExecLines - the lines of code to execute during session initialization.
* @param accessToken - an access token for an authorised user. * @param accessToken - an access token for an authorized user.
* @param authorisedUsers - an optional list of authorised user IDs. * @param authorizedUsers - an optional list of authorized user IDs.
*/ */
public async createComputeContext( public async createComputeContext(
contextName: string, contextName: string,
@@ -187,7 +186,7 @@ export default class SASjs {
sharedAccountId: string, sharedAccountId: string,
autoExecLines: string[], autoExecLines: string[],
accessToken: string, accessToken: string,
authorisedUsers?: string[] authorizedUsers?: string[]
) { ) {
this.isMethodSupported('createComputeContext', [ServerType.SasViya]) this.isMethodSupported('createComputeContext', [ServerType.SasViya])
@@ -197,7 +196,7 @@ export default class SASjs {
sharedAccountId, sharedAccountId,
autoExecLines, autoExecLines,
accessToken, accessToken,
authorisedUsers authorizedUsers
) )
} }
@@ -206,7 +205,7 @@ export default class SASjs {
* @param contextName - the name of the context to be created. * @param contextName - the name of the context to be created.
* @param description - the description of the context to be created. * @param description - the description of the context to be created.
* @param launchType - launch type of the context to be created. * @param launchType - launch type of the context to be created.
* @param accessToken - an access token for an authorised user. * @param accessToken - an access token for an authorized user.
*/ */
public async createLauncherContext( public async createLauncherContext(
contextName: string, contextName: string,
@@ -228,7 +227,7 @@ export default class SASjs {
* Updates a compute context on the given server. * Updates a compute context on the given server.
* @param contextName - the original name of the context to be deleted. * @param contextName - the original name of the context to be deleted.
* @param editedContext - an object with the properties to be updated. * @param editedContext - an object with the properties to be updated.
* @param accessToken - an access token for an authorised user. * @param accessToken - an access token for an authorized user.
*/ */
public async editComputeContext( public async editComputeContext(
contextName: string, contextName: string,
@@ -247,7 +246,7 @@ export default class SASjs {
/** /**
* Deletes a compute context on the given server. * Deletes a compute context on the given server.
* @param contextName - the name of the context to be deleted. * @param contextName - the name of the context to be deleted.
* @param accessToken - an access token for an authorised user. * @param accessToken - an access token for an authorized user.
*/ */
public async deleteComputeContext(contextName: string, accessToken?: string) { public async deleteComputeContext(contextName: string, accessToken?: string) {
this.isMethodSupported('deleteComputeContext', [ServerType.SasViya]) this.isMethodSupported('deleteComputeContext', [ServerType.SasViya])
@@ -262,7 +261,7 @@ export default class SASjs {
* Returns a JSON representation of a compute context. * Returns a JSON representation of a compute context.
* @example: { "createdBy": "admin", "links": [...], "id": "ID", "version": 2, "name": "context1" } * @example: { "createdBy": "admin", "links": [...], "id": "ID", "version": 2, "name": "context1" }
* @param contextName - the name of the context to return. * @param contextName - the name of the context to return.
* @param accessToken - an access token for an authorised user. * @param accessToken - an access token for an authorized user.
*/ */
public async getComputeContextByName( public async getComputeContextByName(
contextName: string, contextName: string,
@@ -279,7 +278,7 @@ export default class SASjs {
/** /**
* Returns a JSON representation of a compute context. * Returns a JSON representation of a compute context.
* @param contextId - an id of the context to return. * @param contextId - an id of the context to return.
* @param accessToken - an access token for an authorised user. * @param accessToken - an access token for an authorized user.
*/ */
public async getComputeContextById(contextId: string, accessToken?: string) { public async getComputeContextById(contextId: string, accessToken?: string) {
this.isMethodSupported('getComputeContextById', [ServerType.SasViya]) this.isMethodSupported('getComputeContextById', [ServerType.SasViya])
@@ -892,24 +891,17 @@ export default class SASjs {
* @param members - the JSON specifying the folders and services to be created. * @param members - the JSON specifying the folders and services to be created.
* @param appLoc - the base folder in which to create the new folders and * @param appLoc - the base folder in which to create the new folders and
* services. If not provided, is taken from SASjsConfig. * services. If not provided, is taken from SASjsConfig.
* @param streamConfig - optional configuration object of StreamConfig for deploying streaming app.
* @param authConfig - a valid client, secret, refresh and access tokens that are authorised to execute compute jobs. * @param authConfig - a valid client, secret, refresh and access tokens that are authorised to execute compute jobs.
*/ */
public async deployToSASjs( public async deployToSASjs(
members: FileTree, members: FileTree,
appLoc?: string, appLoc?: string,
streamConfig?: StreamConfig,
authConfig?: AuthConfig authConfig?: AuthConfig
) { ) {
if (!appLoc) { if (!appLoc) {
appLoc = this.sasjsConfig.appLoc appLoc = this.sasjsConfig.appLoc
} }
return await this.sasJSApiClient?.deploy( return await this.sasJSApiClient?.deploy(members, appLoc, authConfig)
members,
appLoc,
streamConfig,
authConfig
)
} }
public async executeJobSASjs(query: ExecutionQuery) { public async executeJobSASjs(query: ExecutionQuery) {
@@ -980,7 +972,7 @@ export default class SASjs {
/** /**
* Fetches content of the log file * Fetches content of the log file
* @param logUrl - url of the log file. * @param logUrl - url of the log file.
* @param accessToken - an access token for an authorised user. * @param accessToken - an access token for an authorized user.
*/ */
public async fetchLogFileContent(logUrl: string, accessToken?: string) { public async fetchLogFileContent(logUrl: string, accessToken?: string) {
return await this.requestClient!.get(logUrl, accessToken).then((res) => { return await this.requestClient!.get(logUrl, accessToken).then((res) => {

View File

@@ -1,4 +1,4 @@
import { AuthConfig, ServerType, StreamConfig } from '@sasjs/utils/types' import { AuthConfig, ServerType } from '@sasjs/utils/types'
import { FileTree, ExecutionQuery } from './types' import { FileTree, ExecutionQuery } from './types'
import { RequestClient } from './request/RequestClient' import { RequestClient } from './request/RequestClient'
import { getAccessTokenForSasjs } from './auth/getAccessTokenForSasjs' import { getAccessTokenForSasjs } from './auth/getAccessTokenForSasjs'
@@ -20,7 +20,6 @@ export class SASjsApiClient {
public async deploy( public async deploy(
members: FileTree, members: FileTree,
appLoc: string, appLoc: string,
streamConfig?: StreamConfig,
authConfig?: AuthConfig authConfig?: AuthConfig
) { ) {
let access_token = (authConfig || {}).access_token let access_token = (authConfig || {}).access_token
@@ -34,17 +33,10 @@ export class SASjsApiClient {
const { result } = await this.requestClient.post<{ const { result } = await this.requestClient.post<{
status: string status: string
message: string message: string
streamServiceName?: string
example?: {} example?: {}
}>( }>(
'SASjsApi/drive/deploy', 'SASjsApi/drive/deploy',
{ { fileTree: members, appLoc: appLoc },
fileTree: members,
appLoc: appLoc,
streamServiceName: streamConfig?.streamServiceName,
streamWebFolder: streamConfig?.streamWebFolder,
streamLogo: streamConfig?.streamLogo
},
access_token, access_token,
undefined, undefined,
{}, {},

View File

@@ -26,18 +26,11 @@ export const generateFileUploadForm = (
) )
} }
if (typeof FormData === 'undefined' && formData instanceof NodeFormData) { const file = new Blob([csv], {
formData.append(name, csv, { type: 'application/csv'
filename: `${name}.csv`, })
contentType: 'application/csv'
})
} else {
const file = new Blob([csv], {
type: 'application/csv'
})
formData.append(name, file, `${name}.csv`) formData.append(name, file, `${name}.csv`)
}
} }
return formData return formData

View File

@@ -21,7 +21,7 @@ export class ErrorResponse {
} }
} }
interface ErrorBody { export interface ErrorBody {
message: string message: string
details: string details: string
raw: any raw: any

View File

@@ -11,3 +11,4 @@ export * from './RootFolderNotFoundError'
export * from './JsonParseArrayError' export * from './JsonParseArrayError'
export * from './WeboutResponseError' export * from './WeboutResponseError'
export * from './InvalidJsonError' export * from './InvalidJsonError'
export * from './ErrorResponse'