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

refactor(error): refactoring errors and fixing spelling

This commit is contained in:
Yury Shkoda
2020-09-15 12:48:33 +03:00
parent 9af45799b9
commit 81be11f3b9
4 changed files with 96 additions and 98 deletions

View File

@@ -21,7 +21,7 @@ import { formatDataForRequest } from './utils/formatDataForRequest'
import { SessionManager } from './SessionManager'
/**
* A client for interfacing with the SAS Viya REST API
* A client for interfacing with the SAS Viya REST API.
*
*/
export class SASViyaApiClient {
@@ -61,7 +61,7 @@ export class SASViyaApiClient {
}
/**
* returns an object containing the Server URL and root folder name
* Returns an object containing the server URL and root folder name.
*/
public getConfig() {
return {
@@ -71,9 +71,9 @@ export class SASViyaApiClient {
}
/**
* Updates server URL or root folder name when not null
* Updates server URL and root folder name, if it was not set.
* @param serverUrl - the URL of the server.
* @param rootFolderName - the name for rootFolderName.
* @param rootFolderName - the name for root folder.
*/
public setConfig(serverUrl: string, rootFolderName: string) {
if (serverUrl) this.serverUrl = serverUrl
@@ -222,7 +222,7 @@ export class SASViyaApiClient {
* Creates a compute context on the given server.
* @param contextName - the name of the context to be created.
* @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.
* @param autoExecLines - the lines of code to execute during session initialization.
* @param authorizedUsers - an optional list of authorized user IDs.
* @param accessToken - an access token for an authorized user.
@@ -236,15 +236,15 @@ export class SASViyaApiClient {
accessToken?: string
) {
if (!contextName) {
throw new Error('Missing context name.')
throw new Error('Context name is required.')
}
if (!launchContextName) {
throw new Error('Missing launch context name.')
throw new Error('Launch context name is required.')
}
if (!sharedAccountId) {
throw new Error('Missing shared account ID.')
throw new Error('Shared account ID is required.')
}
const headers: any = {
@@ -328,11 +328,11 @@ export class SASViyaApiClient {
if (e && e.status === 404) {
throw new Error(
`The context ${contextName} was not found on this server.`
`The context '${contextName}' was not found on this server.`
)
}
throw new Error(
`An error occurred when fetching the context ${contextName}`
`An error occurred when fetching the context '${contextName}'.`
)
})
@@ -364,7 +364,7 @@ export class SASViyaApiClient {
*/
public async deleteContext(contextName: string, accessToken?: string) {
if (!contextName) {
throw new Error('Invalid context Name.')
throw new Error('Invalid context name.')
}
const headers: any = {
@@ -391,13 +391,13 @@ export class SASViyaApiClient {
/**
* Executes code on the current SAS Viya server.
* @param fileName - a name for the file being submitted for execution.
* @param linesOfCode - an array of lines of code to execute.
* @param linesOfCode - an array of code lines to execute.
* @param contextName - the context to execute the code in.
* @param accessToken - an access token for an authorized user.
* @param sessionId - optional session ID to reuse.
* @param silent - optional flag to turn of logging.
* @param silent - optional flag to disable logging.
* @param data - execution data.
* @param debug - flag taht indicates debug mode.
* @param debug - flag that indicates debug mode.
* @param expectWebout - flag that indicates that web output is expected
*/
public async executeScript(
@@ -486,11 +486,11 @@ export class SASViyaApiClient {
)
if (!silent) {
console.log(`Job has been submitted for ${fileName}`)
console.log(`Job has been submitted for '${fileName}'.`)
console.log(
`You can monitor the job progress at ${this.serverUrl}${
`You can monitor the job progress at '${this.serverUrl}${
postedJob.links.find((l: any) => l.rel === 'state')!.href
}`
}'.`
)
}
@@ -581,7 +581,7 @@ export class SASViyaApiClient {
isForced?: boolean
): Promise<Folder> {
if (!parentFolderPath && !parentFolderUri) {
throw new Error('Parent folder path or uri is required')
throw new Error('Path or URI of the parent folder is required.')
}
if (!parentFolderUri && parentFolderPath) {
@@ -589,7 +589,9 @@ export class SASViyaApiClient {
if (!parentFolderUri) {
if (isForced) this.isForceDeploy = true
console.log(`Parent folder is not present: ${parentFolderPath}`)
console.log(
`Parent folder at path '${parentFolderPath}' is not present.`
)
const newParentFolderPath = parentFolderPath.substring(
0,
@@ -597,10 +599,10 @@ export class SASViyaApiClient {
)
const newFolderName = `${parentFolderPath.split('/').pop()}`
if (newParentFolderPath === '') {
throw new Error('Root Folder should have been present on server')
throw new Error('Root folder has to be present on the server.')
}
console.log(
`Creating Parent Folder:\n${newFolderName} in ${newParentFolderPath}`
`Creating parent folder:\n'${newFolderName}' in '${newParentFolderPath}'`
)
const parentFolder = await this.createFolder(
newFolderName,
@@ -608,7 +610,9 @@ export class SASViyaApiClient {
undefined,
accessToken
)
console.log(`Parent Folder "${newFolderName}" successfully created.`)
console.log(
`Parent folder '${newFolderName}' has been successfully created.`
)
parentFolderUri = `/folders/folders/${parentFolder.id}`
} else if (isForced && accessToken && !this.isForceDeploy) {
this.isForceDeploy = true
@@ -622,11 +626,11 @@ export class SASViyaApiClient {
const newFolderName = `${parentFolderPath.split('/').pop()}`
if (newParentFolderPath === '') {
throw new Error('Root Folder should have been present on server')
throw new Error(`Root folder has to be present on the server.`)
}
console.log(
`Creating Parent Folder:\n${newFolderName} in ${newParentFolderPath}`
`Creating parent folder:\n'${newFolderName}' in '${newParentFolderPath}'`
)
const parentFolder = await this.createFolder(
@@ -636,7 +640,9 @@ export class SASViyaApiClient {
accessToken
)
console.log(`Parent Folder "${newFolderName}" successfully created.`)
console.log(
`Parent folder '${newFolderName}' has been successfully created.`
)
parentFolderUri = `/folders/folders/${parentFolder.id}`
}
@@ -681,9 +687,7 @@ export class SASViyaApiClient {
accessToken?: string
) {
if (!parentFolderPath && !parentFolderUri) {
throw new Error(
'Either parentFolderPath or parentFolderUri must be provided'
)
throw new Error(`Path to or URI of the parent folder is required.`)
}
if (!parentFolderUri && parentFolderPath) {
@@ -896,16 +900,14 @@ export class SASViyaApiClient {
await this.populateRootFolder(accessToken)
}
if (!this.rootFolder) {
console.error('Root folder was not found')
throw new Error('Root folder was not found')
throw new Error(`Root folder was not found.`)
}
if (!this.rootFolderMap.size) {
await this.populateRootFolderMap(accessToken)
}
if (!this.rootFolderMap.size) {
console.error(`The job ${sasJob} was not found in ${this.rootFolderName}`)
throw new Error(
`The job ${sasJob} was not found in ${this.rootFolderName}`
`The job '${sasJob}' was not found in '${this.rootFolderName}'.`
)
}
@@ -920,7 +922,7 @@ export class SASViyaApiClient {
const jobToExecute = jobFolder?.find((item) => item.name === jobName)
if (!jobToExecute) {
throw new Error('Job was not found.')
throw new Error(`Job was not found.`)
}
let code = jobToExecute?.code
@@ -931,8 +933,7 @@ export class SASViyaApiClient {
)
if (!jobDefinitionLink) {
console.error('Job definition URI was not found.')
throw new Error('Job definition URI was not found.')
throw new Error(`URI of job definition was not found.`)
}
const { result: jobDefinition } = await this.request<JobDefinition>(
@@ -979,14 +980,14 @@ export class SASViyaApiClient {
}
if (!this.rootFolder) {
throw new Error('Root folder was not found')
throw new Error(`Root folder was not found.`)
}
if (!this.rootFolderMap.size) {
await this.populateRootFolderMap(accessToken)
}
if (!this.rootFolderMap.size) {
throw new Error(
`The job ${sasJob} was not found in ${this.rootFolderName}`
`The job '${sasJob}' was not found in folder '${this.rootFolderName}'.`
)
}
@@ -1095,7 +1096,7 @@ export class SASViyaApiClient {
return { result: jobResult?.result, log }
} else {
throw new Error(
`The job ${sasJob} was not found at the location ${this.rootFolderName}`
`The job '${sasJob}' was not found in folder '${this.rootFolderName}'.`
)
}
}
@@ -1114,7 +1115,9 @@ export class SASViyaApiClient {
requestInfo
)
if (!folder) {
throw new Error('Cannot populate RootFolderMap unless rootFolder exists')
throw new Error(
`Not able to populate root folder map, because folder '${this.rootFolderName}' does not exist.`
)
}
const { result: members } = await this.request<{ items: any[] }>(
`${this.serverUrl}/folders/folders/${folder.id}/members`,
@@ -1192,7 +1195,7 @@ export class SASViyaApiClient {
}
const stateLink = postedJob.links.find((l: any) => l.rel === 'state')
if (!stateLink) {
Promise.reject('Job state link was not found.')
Promise.reject(`Job state link was not found.`)
}
const { result: state } = await this.request<string>(
@@ -1380,13 +1383,13 @@ export class SASViyaApiClient {
console.error(e)
throw new Error(
`An error occurred when fetching the context with ID ${contextName}`
`An error occurred when fetching the context '${contextName}'.`
)
})
if (!contexts || !(contexts.items && contexts.items.length)) {
throw new Error(
`The context ${contextName} was not found on ${this.serverUrl}.`
`The context '${contextName}' was not found at '${this.serverUrl}'.`
)
}