UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

298 lines (291 loc) 10.3 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib_es6 = require('../tslib.es6-01322ba9.js'); var axios = require('axios'); var devops_token = require('./token.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios); function getDevopsTemplateList(_a) { var projectId = _a.projectId, host = _a.host, secretInfo = _a.secretInfo; return tslib_es6.__awaiter(this, void 0, void 0, function () { var accessToken, appCode, appSecret, devopsUid, resp; return tslib_es6.__generator(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, devops_token.getDevopsAccessToken({ secretInfo: secretInfo, host: host })]; case 1: accessToken = _b.sent(); appCode = secretInfo.appCode, appSecret = secretInfo.appSecret, devopsUid = secretInfo.devopsUid; return [4 /*yield*/, axios__default["default"]({ url: "".concat(host, "/prod/v4/apigw-app/projects/").concat(projectId, "/templates"), method: 'GET', headers: { 'X-DEVOPS-UID': devopsUid, 'Content-Type': 'application/json', 'X-Bkapi-Authorization': JSON.stringify({ bk_app_code: appCode, bk_app_secret: appSecret, access_token: accessToken }) }, params: { page: 1, pageSize: 90 } })["catch"](function (err) { console.log('[getDevopsTemplateList ] err: ', err); })]; case 2: resp = _b.sent(); return [2 /*return*/, resp.data.data || {}]; } }); }); } function getDevopsTemplateLatestVersion(_a) { var projectId = _a.projectId, templateId = _a.templateId, host = _a.host, secretInfo = _a.secretInfo; return tslib_es6.__awaiter(this, void 0, void 0, function () { var templateList, template; return tslib_es6.__generator(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, getDevopsTemplateList({ projectId: projectId, secretInfo: secretInfo, host: host })]; case 1: templateList = _b.sent(); template = templateList.models.find(function (item) { return item.templateId === templateId; }); return [2 /*return*/, template === null || template === void 0 ? void 0 : template.version]; } }); }); } function getHeaderAndBaseUrl(_a) { var projectId = _a.projectId, templateId = _a.templateId, secretInfo = _a.secretInfo, host = _a.host; return tslib_es6.__awaiter(this, void 0, void 0, function () { var appCode, appSecret, devopsUid, accessToken, url; return tslib_es6.__generator(this, function (_b) { switch (_b.label) { case 0: appCode = secretInfo.appCode, appSecret = secretInfo.appSecret, devopsUid = secretInfo.devopsUid; return [4 /*yield*/, devops_token.getDevopsAccessToken({ secretInfo: secretInfo, host: host })]; case 1: accessToken = _b.sent(); url = "".concat(host, "/prod/v4/apigw-app/projects/").concat(projectId, "/templates/templateInstances?templateId=").concat(templateId); return [2 /*return*/, { headers: { 'X-DEVOPS-UID': devopsUid, 'Content-Type': 'application/json', 'X-Bkapi-Authorization': JSON.stringify({ bk_app_code: appCode, bk_app_secret: appSecret, access_token: accessToken }) }, baseUrl: url }]; } }); }); } function getDevopsTemplateInstances(_a) { var projectId = _a.projectId, templateId = _a.templateId, host = _a.host, secretInfo = _a.secretInfo, _b = _a.page, page = _b === void 0 ? 1 : _b, _c = _a.pageSize, pageSize = _c === void 0 ? 100 : _c; return tslib_es6.__awaiter(this, void 0, void 0, function () { var _d, headers, baseUrl, url, resp; return tslib_es6.__generator(this, function (_e) { switch (_e.label) { case 0: return [4 /*yield*/, getHeaderAndBaseUrl({ projectId: projectId, templateId: templateId, secretInfo: secretInfo, host: host })]; case 1: _d = _e.sent(), headers = _d.headers, baseUrl = _d.baseUrl; url = "".concat(baseUrl, "&page=").concat(page, "&pageSize=").concat(pageSize); return [4 /*yield*/, axios__default["default"]({ headers: headers, url: url, method: 'GET' })["catch"](function (err) { console.log('[getDevopsTemplateInstances] err: ', err); })]; case 2: resp = _e.sent(); return [2 /*return*/, resp.data]; } }); }); } function getAllDevopsTemplateInstances(reqParam) { return tslib_es6.__awaiter(this, void 0, void 0, function () { var list; return tslib_es6.__generator(this, function (_a) { switch (_a.label) { case 0: list = []; return [4 /*yield*/, innerGetInstances(list, reqParam)]; case 1: _a.sent(); return [2 /*return*/, list]; } }); }); } function innerGetInstances(allData, reqParam) { if (allData === void 0) { allData = []; } return tslib_es6.__awaiter(this, void 0, void 0, function () { var resp, _a, page, _b, instances; return tslib_es6.__generator(this, function (_c) { switch (_c.label) { case 0: return [4 /*yield*/, getDevopsTemplateInstances(reqParam)]; case 1: resp = _c.sent(); _a = resp.data || {}, page = _a.page, _b = _a.instances, instances = _b === void 0 ? [] : _b; allData.push.apply(allData, instances); if (!instances.length) return [2 /*return*/]; return [4 /*yield*/, innerGetInstances(allData, tslib_es6.__assign(tslib_es6.__assign({}, reqParam), { page: page + 1 }))]; case 2: _c.sent(); return [2 /*return*/]; } }); }); } function createDevopsTemplateInstances(_a) { var projectId = _a.projectId, templateId = _a.templateId, host = _a.host, pipelineName = _a.pipelineName, pipelineParam = _a.pipelineParam, secretInfo = _a.secretInfo, _b = _a.useTemplateSettings, useTemplateSettings = _b === void 0 ? true : _b; return tslib_es6.__awaiter(this, void 0, void 0, function () { var version, _c, headers, baseUrl, url, resp; return tslib_es6.__generator(this, function (_d) { switch (_d.label) { case 0: return [4 /*yield*/, getDevopsTemplateLatestVersion({ templateId: templateId, projectId: projectId, secretInfo: secretInfo, host: host })]; case 1: version = _d.sent(); console.log('[createDevopsTemplateInstances] version: ', version); return [4 /*yield*/, getHeaderAndBaseUrl({ projectId: projectId, templateId: templateId, secretInfo: secretInfo, host: host })]; case 2: _c = _d.sent(), headers = _c.headers, baseUrl = _c.baseUrl; url = "".concat(baseUrl, "&version=").concat(version, "&useTemplateSettings=").concat(useTemplateSettings); return [4 /*yield*/, axios__default["default"]({ headers: headers, url: url, method: 'post', data: [{ pipelineName: pipelineName, param: pipelineParam }] })["catch"](function (err) { console.log('[createDevopsTemplateInstances] err: ', err); })]; case 3: resp = _d.sent(); return [2 /*return*/, resp.data]; } }); }); } function updateDevopsTemplateInstances(_a) { var projectId = _a.projectId, templateId = _a.templateId, pipelineId = _a.pipelineId, host = _a.host, pipelineName = _a.pipelineName, pipelineParam = _a.pipelineParam, _b = _a.useTemplateSettings, useTemplateSettings = _b === void 0 ? true : _b, secretInfo = _a.secretInfo; return tslib_es6.__awaiter(this, void 0, void 0, function () { var version, _c, headers, baseUrl, url, resp; return tslib_es6.__generator(this, function (_d) { switch (_d.label) { case 0: return [4 /*yield*/, getDevopsTemplateLatestVersion({ templateId: templateId, projectId: projectId, secretInfo: secretInfo, host: host })]; case 1: version = _d.sent(); console.log('[updateDevopsTemplateInstances] version: ', version); return [4 /*yield*/, getHeaderAndBaseUrl({ projectId: projectId, templateId: templateId, secretInfo: secretInfo, host: host })]; case 2: _c = _d.sent(), headers = _c.headers, baseUrl = _c.baseUrl; url = "".concat(baseUrl, "&version=").concat(version, "&useTemplateSettings=").concat(useTemplateSettings); return [4 /*yield*/, axios__default["default"]({ headers: headers, url: url, method: 'PUT', data: [{ pipelineName: pipelineName, pipelineId: pipelineId, param: pipelineParam }] })["catch"](function (err) { console.log('[updateDevopsTemplateInstances] err: ', err); })]; case 3: resp = _d.sent(); return [2 /*return*/, resp.data]; } }); }); } exports.createDevopsTemplateInstances = createDevopsTemplateInstances; exports.getAllDevopsTemplateInstances = getAllDevopsTemplateInstances; exports.getDevopsTemplateInstances = getDevopsTemplateInstances; exports.updateDevopsTemplateInstances = updateDevopsTemplateInstances;