@heroku/applink
Version:
Applink SDK for Heroku Apps.
46 lines (45 loc) • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.OrgImpl = void 0;
const bulk_api_1 = require("./bulk-api");
const data_api_1 = require("./data-api");
const data_cloud_api_1 = require("./data-cloud-api");
const request_1 = require("../utils/request");
const user_1 = require("./user");
const HTTP_REQUEST = new request_1.HttpRequestUtil();
class OrgImpl {
constructor(accessToken, apiVersion, namespace, orgId, orgDomainUrl, userId, username, orgType) {
this.accessToken = accessToken;
this.apiVersion = apiVersion.startsWith("v")
? apiVersion.substring(1)
: apiVersion;
this.domainUrl = orgDomainUrl.startsWith("http")
? orgDomainUrl
: `https://${orgDomainUrl}`;
this.id = orgId;
this.namespace =
namespace === null || namespace === "null" ? "" : namespace;
this.bulkApi = (0, bulk_api_1.createBulkApi)({
instanceUrl: this.domainUrl,
version: this.apiVersion,
accessToken,
});
this.dataApi = new data_api_1.DataApiImpl(accessToken, this.apiVersion, this.domainUrl);
if (orgType === "DataCloudOrg" || orgType === "DatacloudOrg") {
this.dataCloudApi = new data_cloud_api_1.DataCloudApiImpl(accessToken, orgDomainUrl);
}
this.user = new user_1.UserImpl(userId, username);
}
async request(fullUrlOrUrlPart, opts, json = true) {
const url = fullUrlOrUrlPart.startsWith("http")
? fullUrlOrUrlPart
: `${this.domainUrl}/${fullUrlOrUrlPart}`;
const updatedOpts = opts || {};
updatedOpts.headers = updatedOpts.headers || {};
if (!updatedOpts.headers["Authorization"]) {
updatedOpts.headers["Authorization"] = `Bearer ${this.accessToken}`;
}
return HTTP_REQUEST.request(url, updatedOpts, json);
}
}
exports.OrgImpl = OrgImpl;