UNPKG

@sap/destination-instance-service-provider

Version:

Provide service consumption of SAP IT services

109 lines 5.84 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DestinationInstanceProviderRepository = void 0; const cfTools = require("@sap/cf-tools"); const _ = require("lodash"); const basServiceRetriever_1 = require("./basServiceRetriever"); const service_provider_apis_1 = require("@sap/service-provider-apis"); class DestinationInstanceProviderRepository { constructor() { this.logger = service_provider_apis_1.DefaultLogger; } init(destinationInstanceName, cfTarget) { return __awaiter(this, void 0, void 0, function* () { this.destinationInstanceName = destinationInstanceName; try { yield this.validateCfConnected(cfTarget); const serviceInstanceCredentials = yield this.retrieveServiceInstanceCredentials(this.destinationInstanceName); this.serviceRetriever = this.buildServiceRetriever(serviceInstanceCredentials); } catch (e) { this.logger.error(`init: ${e.message}`); if (e instanceof service_provider_apis_1.ServiceProviderError) { e.message = `${service_provider_apis_1.messages.ERROR_FAILED_TO_INIT}: ${e.message}`; throw e; } else { throw new service_provider_apis_1.ServiceProviderError(service_provider_apis_1.ServiceProviderErrorCode.INTERNAL_ERROR, e); } } }); } getSystems(filter) { return __awaiter(this, void 0, void 0, function* () { try { if (this.serviceRetriever.retrieveDestinations) { return yield this.serviceRetriever.retrieveDestinations(); } } catch (e) { this.logger.error(`getSystems: ${e.message}`); if (e instanceof service_provider_apis_1.ServiceProviderError) { e.message = `${service_provider_apis_1.messages.SYS_ERROR_FAIL_RETRIEVE_DESTINATIONS}: ${e.message}`; throw e; } else { throw new service_provider_apis_1.ServiceProviderError(service_provider_apis_1.ServiceProviderErrorCode.INTERNAL_ERROR, e); } } throw new service_provider_apis_1.ServiceProviderError(service_provider_apis_1.ServiceProviderErrorCode.INTERNAL_ERROR, service_provider_apis_1.messages.SYS_ERROR_RETRIEVE_DESTINATION_METHOD); }); } getServiceRetriever() { return this.serviceRetriever; } validateCfConnected(cfTarget) { return __awaiter(this, void 0, void 0, function* () { let error; if (cfTarget) { } try { const target = yield cfTools.cfGetTarget(true); if (!_.isEmpty(target.org) && !_.isEmpty(target.space)) { return; } } catch (e) { this.logger.error(`${service_provider_apis_1.messages.SYS_ERROR_MISSING_CF_CONFIGURATIONS}: ${e.message}`); error = new service_provider_apis_1.ServiceProviderError(service_provider_apis_1.ServiceProviderErrorCode.CF_CONFIGURATION, e); } throw error ? error : new service_provider_apis_1.ServiceProviderError(service_provider_apis_1.ServiceProviderErrorCode.CF_CONFIGURATION, service_provider_apis_1.messages.SYS_ERROR_MISSING_CF_CONFIGURATIONS); }); } retrieveServiceInstanceCredentials(destinationInstanceName) { return __awaiter(this, void 0, void 0, function* () { var _a, _b, _c, _d; try { const cfServiceInstanceCredentials = yield cfTools.apiGetInstanceCredentials(destinationInstanceName); return { clientId: ((_a = cfServiceInstanceCredentials.uaa) === null || _a === void 0 ? void 0 : _a.clientid) || ((_b = cfServiceInstanceCredentials.credentials) === null || _b === void 0 ? void 0 : _b.clientid) || cfServiceInstanceCredentials.clientid, clientSecret: ((_c = cfServiceInstanceCredentials.uaa) === null || _c === void 0 ? void 0 : _c.clientsecret) || ((_d = cfServiceInstanceCredentials.credentials) === null || _d === void 0 ? void 0 : _d.clientsecret) || cfServiceInstanceCredentials.clientsecret, }; } catch (e) { e.message = `${service_provider_apis_1.messages.SYS_ERROR_RETRIEVING_SERVICE_KEY}: ${e.message}`; throw new service_provider_apis_1.ServiceProviderError(service_provider_apis_1.ServiceProviderErrorCode.RETRIEVE_DATA, e); } }); } buildServiceRetriever(serviceCredentials) { return new basServiceRetriever_1.BasServiceRetriever(serviceCredentials); } } exports.DestinationInstanceProviderRepository = DestinationInstanceProviderRepository; //# sourceMappingURL=destinationInstanceProviderRepository.js.map