@veecode-platform/safira-cli
Version:
Generate a microservice project from your spec.
79 lines (78 loc) • 3.89 kB
JavaScript
;
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 = {}));