UNPKG

@facets-cloud/facetsctl

Version:
148 lines (147 loc) 5.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.uploadArtifactsZip = exports.registerArtifactByReleaseStream = exports.registerArtifactByEnv = exports.getClusterById = exports.getKubeConfigFileContent = exports.pushArtifactWithMetadata = exports.registerArtifact = exports.fetchPushCredentialsByBranch = exports.fetchPushCredentials = exports.getAllClustersByStackName = exports.refreshCredentials = exports.fetchUserDetails = void 0; const axios_1 = require("axios"); const FormData = require("form-data"); const fs = require("fs"); async function fetchUserDetails(cpUrl, username, token) { return axios_1.default.get(`${cpUrl}/api/me`, { auth: { username: username, password: token, }, }); } exports.fetchUserDetails = fetchUserDetails; async function refreshCredentials(cpUrl, username, accessToken, environmentId) { return axios_1.default.get(`${cpUrl}/cc-ui/v1/clusters/${encodeURIComponent(String(environmentId))}/kubeconfig/refresh`, { auth: { username: username, password: accessToken, }, }); } exports.refreshCredentials = refreshCredentials; async function getAllClustersByStackName(cpUrl, username, accessToken, blueprintName) { return axios_1.default.get(`${cpUrl}/cc-ui/v1/stacks/${blueprintName}/clusters`, { auth: { username: username, password: accessToken, }, }); } exports.getAllClustersByStackName = getAllClustersByStackName; async function fetchPushCredentials(cpUrl, username, accessToken, artifactName, registrationType, registrationValue) { return axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/pushCredentialsV2/artifactName/${encodeURIComponent(artifactName.toLowerCase())}/registrationType/${encodeURIComponent(registrationType)}/value/${encodeURIComponent(registrationValue)}`, undefined, { auth: { username: username, password: accessToken, }, }); } exports.fetchPushCredentials = fetchPushCredentials; async function fetchPushCredentialsByBranch(cpUrl, username, accessToken, artifactName, branchName) { return axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/pushCredentialsV3/artifactName/${encodeURIComponent(artifactName.toLowerCase())}?branch_name=${branchName}`, undefined, { auth: { username: username, password: accessToken, }, }); } exports.fetchPushCredentialsByBranch = fetchPushCredentialsByBranch; async function registerArtifact(cpUrl, username, accessToken, artifact) { return axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/registerV2`, artifact, { auth: { username: username, password: accessToken, }, headers: { "Content-Type": "application/json", }, }); } exports.registerArtifact = registerArtifact; async function pushArtifactWithMetadata(cpUrl, username, accessToken, artifact) { return axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/push`, artifact, { auth: { username: username, password: accessToken, }, headers: { "Content-Type": "application/json", }, }); } exports.pushArtifactWithMetadata = pushArtifactWithMetadata; async function getKubeConfigFileContent(cpUrl, username, accessToken, clusterId) { return axios_1.default.get(`${cpUrl}/cc-ui/v1/clusters/${clusterId}/kubeconfig`, { auth: { username: username, password: accessToken, }, }); } exports.getKubeConfigFileContent = getKubeConfigFileContent; async function getClusterById(cpUrl, username, accessToken, clusterId) { return axios_1.default.get(`${cpUrl}/cc-ui/v1/clusters/${clusterId}`, { auth: { username: username, password: accessToken, }, }); } exports.getClusterById = getClusterById; async function registerArtifactByEnv(cpUrl, username, accessToken, artifact) { return axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/register-by-env`, artifact, { auth: { username: username, password: accessToken, }, headers: { "Content-Type": "application/json", }, }); } exports.registerArtifactByEnv = registerArtifactByEnv; async function registerArtifactByReleaseStream(cpUrl, username, accessToken, artifact) { return axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/register-by-release-stream`, artifact, { auth: { username: username, password: accessToken, }, headers: { "Content-Type": "application/json", }, }); } exports.registerArtifactByReleaseStream = registerArtifactByReleaseStream; async function uploadArtifactsZip(cpUrl, username, accessToken, filePath, artifactRequest) { const filename = filePath.split("/").pop(); const form = new FormData(); // Append JSON data form.append('artifactRequest', JSON.stringify(artifactRequest), { contentType: 'application/json', }); // Append file stream form.append('file', fs.createReadStream(filePath), { filename: filename, contentType: 'application/octet-stream' }); const headers = form.getHeaders({ Authorization: `Basic ${Buffer.from(`${username}:${accessToken}`).toString('base64')}`, }); try { const response = await axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/upload`, form, { headers, maxBodyLength: Infinity, maxContentLength: Infinity, }); return response; } catch (error) { // console.log('API ERROR', error); // Throw error to propagate it throw error; } } exports.uploadArtifactsZip = uploadArtifactsZip;