mirror of
https://github.com/sasjs/adapter.git
synced 2026-01-06 20:10:05 +00:00
fix(deploy-service-pack): fixed redeployment
This commit is contained in:
@@ -378,12 +378,14 @@ export class SASViyaApiClient {
|
|||||||
isForced?: boolean
|
isForced?: boolean
|
||||||
): Promise<Folder> {
|
): Promise<Folder> {
|
||||||
const logger = process.logger || console
|
const logger = process.logger || console
|
||||||
|
|
||||||
if (!parentFolderPath && !parentFolderUri) {
|
if (!parentFolderPath && !parentFolderUri) {
|
||||||
throw new Error('Path or URI of the parent folder is required.')
|
throw new Error('Path or URI of the parent folder is required.')
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!parentFolderUri && parentFolderPath) {
|
if (!parentFolderUri && parentFolderPath) {
|
||||||
parentFolderUri = await this.getFolderUri(parentFolderPath, accessToken)
|
parentFolderUri = await this.getFolderUri(parentFolderPath, accessToken)
|
||||||
|
|
||||||
if (!parentFolderUri) {
|
if (!parentFolderUri) {
|
||||||
logger.info(
|
logger.info(
|
||||||
`Parent folder at path '${parentFolderPath}' is not present.`
|
`Parent folder at path '${parentFolderPath}' is not present.`
|
||||||
@@ -394,6 +396,7 @@ export class SASViyaApiClient {
|
|||||||
parentFolderPath.lastIndexOf('/')
|
parentFolderPath.lastIndexOf('/')
|
||||||
)
|
)
|
||||||
const newFolderName = `${parentFolderPath.split('/').pop()}`
|
const newFolderName = `${parentFolderPath.split('/').pop()}`
|
||||||
|
|
||||||
if (newParentFolderPath === '') {
|
if (newParentFolderPath === '') {
|
||||||
throw new RootFolderNotFoundError(
|
throw new RootFolderNotFoundError(
|
||||||
parentFolderPath,
|
parentFolderPath,
|
||||||
@@ -401,20 +404,24 @@ export class SASViyaApiClient {
|
|||||||
accessToken
|
accessToken
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(
|
logger.info(
|
||||||
`Creating parent folder:\n'${newFolderName}' in '${newParentFolderPath}'`
|
`Creating parent folder:\n'${newFolderName}' in '${newParentFolderPath}'`
|
||||||
)
|
)
|
||||||
|
|
||||||
const parentFolder = await this.createFolder(
|
const parentFolder = await this.createFolder(
|
||||||
newFolderName,
|
newFolderName,
|
||||||
newParentFolderPath,
|
newParentFolderPath,
|
||||||
undefined,
|
undefined,
|
||||||
accessToken
|
accessToken
|
||||||
)
|
)
|
||||||
|
|
||||||
logger.info(
|
logger.info(
|
||||||
`Parent folder '${newFolderName}' has been successfully created.`
|
`Parent folder '${newFolderName}' has been successfully created.`
|
||||||
)
|
)
|
||||||
|
|
||||||
parentFolderUri = `/folders/folders/${parentFolder.id}`
|
parentFolderUri = `/folders/folders/${parentFolder.id}`
|
||||||
} else if (isForced && accessToken) {
|
} else if (isForced) {
|
||||||
const folderPath = parentFolderPath + '/' + folderName
|
const folderPath = parentFolderPath + '/' + folderName
|
||||||
const folderUri = await this.getFolderUri(folderPath, accessToken)
|
const folderUri = await this.getFolderUri(folderPath, accessToken)
|
||||||
|
|
||||||
@@ -900,7 +907,7 @@ export class SASViyaApiClient {
|
|||||||
return `/folders/folders/${folderDetails.id}`
|
return `/folders/folders/${folderDetails.id}`
|
||||||
}
|
}
|
||||||
|
|
||||||
private async getRecycleBinUri(accessToken: string) {
|
private async getRecycleBinUri(accessToken?: string) {
|
||||||
const url = '/folders/folders/@myRecycleBin'
|
const url = '/folders/folders/@myRecycleBin'
|
||||||
|
|
||||||
const { result: folder } = await this.requestClient
|
const { result: folder } = await this.requestClient
|
||||||
@@ -984,7 +991,7 @@ export class SASViyaApiClient {
|
|||||||
sourceFolder: string,
|
sourceFolder: string,
|
||||||
targetParentFolder: string,
|
targetParentFolder: string,
|
||||||
targetFolderName: string,
|
targetFolderName: string,
|
||||||
accessToken: string
|
accessToken?: string
|
||||||
) {
|
) {
|
||||||
// If target path is an existing folder, than keep source folder name, othervise rename it with given target folder name
|
// If target path is an existing folder, than keep source folder name, othervise rename it with given target folder name
|
||||||
const sourceFolderName = sourceFolder.split('/').pop() as string
|
const sourceFolderName = sourceFolder.split('/').pop() as string
|
||||||
@@ -1051,7 +1058,7 @@ export class SASViyaApiClient {
|
|||||||
* @param folderPath - the full path (eg `/Public/example/deleteThis`) of the folder to be deleted.
|
* @param folderPath - the full path (eg `/Public/example/deleteThis`) of the folder to be deleted.
|
||||||
* @param accessToken - an access token for authorizing the request.
|
* @param accessToken - an access token for authorizing the request.
|
||||||
*/
|
*/
|
||||||
public async deleteFolder(folderPath: string, accessToken: string) {
|
public async deleteFolder(folderPath: string, accessToken?: string) {
|
||||||
const recycleBinUri = await this.getRecycleBinUri(accessToken)
|
const recycleBinUri = await this.getRecycleBinUri(accessToken)
|
||||||
const folderName = folderPath.split('/').pop() || ''
|
const folderName = folderPath.split('/').pop() || ''
|
||||||
const date = new Date()
|
const date = new Date()
|
||||||
|
|||||||
19
src/SASjs.ts
19
src/SASjs.ts
@@ -337,13 +337,16 @@ export default class SASjs {
|
|||||||
sasApiClient?: SASViyaApiClient,
|
sasApiClient?: SASViyaApiClient,
|
||||||
isForced?: boolean
|
isForced?: boolean
|
||||||
) {
|
) {
|
||||||
if (sasApiClient)
|
if (sasApiClient) {
|
||||||
return await sasApiClient.createFolder(
|
return await sasApiClient.createFolder(
|
||||||
folderName,
|
folderName,
|
||||||
parentFolderPath,
|
parentFolderPath,
|
||||||
parentFolderUri,
|
parentFolderUri,
|
||||||
accessToken
|
accessToken,
|
||||||
|
isForced
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
return await this.sasViyaApiClient!.createFolder(
|
return await this.sasViyaApiClient!.createFolder(
|
||||||
folderName,
|
folderName,
|
||||||
parentFolderPath,
|
parentFolderPath,
|
||||||
@@ -783,13 +786,11 @@ export default class SASjs {
|
|||||||
this.isMethodSupported('deployServicePack', [ServerType.SasViya])
|
this.isMethodSupported('deployServicePack', [ServerType.SasViya])
|
||||||
|
|
||||||
let sasApiClient: any = null
|
let sasApiClient: any = null
|
||||||
|
|
||||||
if (serverUrl || appLoc) {
|
if (serverUrl || appLoc) {
|
||||||
if (!serverUrl) {
|
if (!serverUrl) serverUrl = this.sasjsConfig.serverUrl
|
||||||
serverUrl = this.sasjsConfig.serverUrl
|
if (!appLoc) appLoc = this.sasjsConfig.appLoc
|
||||||
}
|
|
||||||
if (!appLoc) {
|
|
||||||
appLoc = this.sasjsConfig.appLoc
|
|
||||||
}
|
|
||||||
if (this.sasjsConfig.serverType === ServerType.SasViya) {
|
if (this.sasjsConfig.serverType === ServerType.SasViya) {
|
||||||
sasApiClient = new SASViyaApiClient(
|
sasApiClient = new SASViyaApiClient(
|
||||||
serverUrl,
|
serverUrl,
|
||||||
@@ -807,11 +808,13 @@ export default class SASjs {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let sasClientConfig: any = null
|
let sasClientConfig: any = null
|
||||||
|
|
||||||
if (this.sasjsConfig.serverType === ServerType.SasViya) {
|
if (this.sasjsConfig.serverType === ServerType.SasViya) {
|
||||||
sasClientConfig = this.sasViyaApiClient!.getConfig()
|
sasClientConfig = this.sasViyaApiClient!.getConfig()
|
||||||
} else if (this.sasjsConfig.serverType === ServerType.Sas9) {
|
} else if (this.sasjsConfig.serverType === ServerType.Sas9) {
|
||||||
sasClientConfig = this.sas9ApiClient!.getConfig()
|
sasClientConfig = this.sas9ApiClient!.getConfig()
|
||||||
}
|
}
|
||||||
|
|
||||||
serverUrl = sasClientConfig.serverUrl
|
serverUrl = sasClientConfig.serverUrl
|
||||||
appLoc = sasClientConfig.rootFolderName as string
|
appLoc = sasClientConfig.rootFolderName as string
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user