From f9ac7afc911f11c716e9afec0d538de38e7888ac Mon Sep 17 00:00:00 2001 From: Hao Liu Date: Sun, 11 Aug 2019 23:53:27 +0800 Subject: [PATCH] Fix extension load problem --- src/salesforce/api/metadata.ts | 14 +++++++++----- src/salesforce/lib/auth/server.ts | 11 +++-------- src/settings/metadata.ts | 20 +++++++++++--------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/salesforce/api/metadata.ts b/src/salesforce/api/metadata.ts index 7e5bbcf..22e0a2f 100644 --- a/src/salesforce/api/metadata.ts +++ b/src/salesforce/api/metadata.ts @@ -94,7 +94,9 @@ export default class MetadataApi { * @returns {Promise.} */ public describeMetadata() { - return this._invoke_method("DescribeMetadata"); + return this._invoke_method({ + "requestType": "DescribeMetadata" + }); } /** @@ -106,8 +108,9 @@ export default class MetadataApi { */ public checkRetriveStatus(options: any, progress?: any) { let self = this; + let requestType = "CheckRetrieveStatus"; let soapBody = self.soap.getRequestBody( - "CheckRetrieveStatus", options + requestType, options ); let requestOptions = { @@ -122,11 +125,12 @@ export default class MetadataApi { function recursiveCheck() { request(requestOptions).then(body => { - let result = self.parseResult(body, "CheckRetrieveStatus"); + let result = self.parseResult(body, requestType); // Show progress status ProgressNotification.notify( - progress, result["status"], + progress, + `[sf:retrieve] Request Status: ${result["status"]}`, result["done"] ? 100 : undefined ); @@ -159,7 +163,7 @@ export default class MetadataApi { return new Promise( (resolve, reject) => { options["requestType"] = "Retrieve"; - console.log(options); + ProgressNotification.showProgress(self, "_invoke_method", options) .then( result => { options["asyncProcessId"] = result["id"]; diff --git a/src/salesforce/lib/auth/server.ts b/src/salesforce/lib/auth/server.ts index c3f3bee..569ce61 100644 --- a/src/salesforce/lib/auth/server.ts +++ b/src/salesforce/lib/auth/server.ts @@ -4,8 +4,7 @@ import * as vscode from "vscode"; import * as moment from "moment"; import * as xmlParser from "fast-xml-parser"; import * as config from "./config"; -import * as settingsUtil from "../../../settings/settingsUtil"; -import { projectSession } from "../../../settings"; +import { projectSession, metadata } from "../../../settings"; import * as util from "../../../utils/util"; import MetadataApi from "../../api/metadata"; import { OAuth } from "./oauth"; @@ -59,12 +58,8 @@ export function startServer(projectName: any, loginUrl: string) { // Describe metadata let metadataApi = new MetadataApi(session); metadataApi.describeMetadata() - .then(function(response) { - let result = xmlParser.parse(response["body"]); - settingsUtil.setConfigValue( - "metadata.json", - result["soapenv:Envelope"]["soapenv:Body"]["describeMetadataResponse"]["result"] - ); + .then( result => { + metadata.setMetaObjects(result); }) .catch(err => { console.error(err); diff --git a/src/settings/metadata.ts b/src/settings/metadata.ts index fa7d270..f0c4fd0 100644 --- a/src/settings/metadata.ts +++ b/src/settings/metadata.ts @@ -5,13 +5,6 @@ import * as settingsUtil from "./settingsUtil"; export default class Metadata { private static instance: Metadata; private metaFileName = "metadata.json"; - private metaObjects: any; - - private constructor() { - this.metaObjects = settingsUtil.getConfig( - this.metaFileName - )["metadataObjects"]; - } public static getInstance() { if (!Metadata.instance) { @@ -21,11 +14,19 @@ export default class Metadata { return Metadata.instance; } + public setMetaObjects(metaObject: any) { + settingsUtil.setConfigValue( + "metadata.json", metaObject + ); + } + /** * Get metaobjects array */ public getMetaObjects() { - return this.metaObjects; + return settingsUtil.getConfig( + this.metaFileName + )["metadataObjects"]; } /** @@ -40,7 +41,8 @@ export default class Metadata { * } */ public getMetaObject(metaFolder: string): any { - for (const metaObject of this.metaObjects) { + let metaobjects = this.getMetaObjects(); + for (const metaObject of metaobjects) { if (metaObject["directoryName"] === metaFolder) { return metaObject; }