UNPKG

@veecode-platform/safira-cli

Version:

Generate a microservice project from your spec.

79 lines (78 loc) 3.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CredentialsKey = exports.Credentials = void 0; const file_system_utils_1 = require("../../utils/file-system-utils"); const json_utils_1 = require("../../utils/json-utils"); const file_exception_1 = require("../../exception/file-exception"); const credentials_exception_1 = require("../../exception/credentials-exception"); const credentials_dto_1 = require("./credentials-dto"); const ritchie_command_1 = require("../../ritchie/ritchie-command"); const install_vkpr_1 = require("../install-vkpr"); class Credentials { constructor() { this._credentialsPath = file_system_utils_1.FileSystemUtils.buildPath(file_system_utils_1.FileSystemUtils.getOsUserHome(), ".rit", "credentials", "default"); } async setCredential(credential) { await install_vkpr_1.InstallVkpr.instance.install(); const fields = Object.keys(credential).map(key => `"${key}"`).join(","); const values = Object.values(credential).map(value => `"${value}"`).join(","); const provider = this._parseCredentialsProvider(credential); const command = `set credential --provider=${provider} --fields=${fields} --values=${values}`; await ritchie_command_1.RitchieCommand.instance.runWithResponse(command); } async removeCredential(key) { await install_vkpr_1.InstallVkpr.instance.install(); const command = `remove credential --provider=${key}`; await ritchie_command_1.RitchieCommand.instance.runWithResponse(command); } exists(key) { const credentialPath = file_system_utils_1.FileSystemUtils.buildPath(this._credentialsPath, key); return file_system_utils_1.FileSystemUtils.exists(credentialPath); } getCredential(key) { const credentialPath = file_system_utils_1.FileSystemUtils.buildPath(this._credentialsPath, key); try { return json_utils_1.JsonUtils.loadJsonFile(credentialPath); } catch (error) { if (error instanceof file_exception_1.FileNotFoundException) { throw new credentials_exception_1.CredentialsNotFoundException(`credentials not found for provider ${key}`); } throw error; } } _parseCredentialsProvider(credential) { if (credential instanceof credentials_dto_1.GitlabCredential) return CredentialsKey.gitlab; if (credential instanceof credentials_dto_1.GithubCredential) return CredentialsKey.github; if (credential instanceof credentials_dto_1.BitbucketCredential) return CredentialsKey.bitbucket; if (credential instanceof credentials_dto_1.DockerRegistryCredential) return CredentialsKey.dockerRegistry; if (credential instanceof credentials_dto_1.AwsCredential) return CredentialsKey.aws; if (credential instanceof credentials_dto_1.PostgresCredential) return CredentialsKey.postgres; if (credential instanceof credentials_dto_1.OktaCredential) return CredentialsKey.okta; throw new credentials_exception_1.CredentialProviderNotFoundException(`credential provider not found for ${credential?.constructor?.name}`); } static get instance() { if (!this._instance) { this._instance = new this(); } return this._instance; } } exports.Credentials = Credentials; var CredentialsKey; (function (CredentialsKey) { CredentialsKey["aws"] = "aws"; CredentialsKey["dockerRegistry"] = "dockerRegistry"; CredentialsKey["gitlab"] = "gitlab"; CredentialsKey["github"] = "github"; CredentialsKey["bitbucket"] = "bitbucket"; CredentialsKey["postgres"] = "postgres"; CredentialsKey["okta"] = "okta"; })(CredentialsKey = exports.CredentialsKey || (exports.CredentialsKey = {}));