UNPKG

@broadcom/endevor-bridge-for-git-for-zowe-cli

Version:

Endevor Bridge for Git plug-in for Zowe CLI

102 lines (97 loc) 5.57 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib_es6 = require('../../../../node_modules/tslib/tslib.es6.js'); var BaseHandler = require('../../../BaseHandler.js'); var WebhookOptions = require('../../../options/WebhookOptions.js'); var EBGWebhookService = require('../../../../api/service/EBGWebhookService.js'); var index = require('../../../../node_modules/@broadcom/bridge-for-git-zowe-client/dist/index.js'); var object = require('../../../../utils/object.js'); /* * Copyright (c) 2019 Broadcom. All Rights Reserved. The term * "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. * * This software and all information contained therein is * confidential and proprietary and shall not be duplicated, * used, disclosed, or disseminated in any way except as * authorized by the applicable license agreement, without the * express written permission of Broadcom. All authorized * reproductions must be marked with this language. * * EXCEPT AS SET FORTH IN THE APPLICABLE LICENSE AGREEMENT, TO * THE EXTENT PERMITTED BY APPLICABLE LAW, BROADCOM PROVIDES THIS * SOFTWARE WITHOUT WARRANTY OF ANY KIND, INCLUDING WITHOUT * LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL BROADCOM * BE LIABLE TO THE END USER OR ANY THIRD PARTY FOR ANY LOSS OR * DAMAGE, DIRECT OR INDIRECT, FROM THE USE OF THIS SOFTWARE, * INCLUDING WITHOUT LIMITATION, LOST PROFITS, BUSINESS * INTERRUPTION, GOODWILL, OR LOST DATA, EVEN IF BROADCOM IS * EXPRESSLY ADVISED OF SUCH LOSS OR DAMAGE. */ class UpdateWebhookHandler extends BaseHandler.BaseHandler { /*** Supporting only hooks with type Web ***/ processWithSession() { return tslib_es6.__awaiter(this, void 0, void 0, function* () { const context = this.getOption(WebhookOptions.WebhookOptions.CONTEXT, false); const id = this.getOption(WebhookOptions.WebhookOptions.ID, true); const url = this.getOption(WebhookOptions.WebhookOptions.URL, false); const name = this.getOption(WebhookOptions.WebhookOptions.NAME, false); const enabled = this.getOption(WebhookOptions.WebhookOptions.ENABLED); const description = this.getOption(WebhookOptions.WebhookOptions.DESCRIPTION, false); const operationTypes = this.getOption(WebhookOptions.WebhookOptions.OPERATION_TYPES, false); const operationResults = this.getOption(WebhookOptions.WebhookOptions.OPERATION_RESULTS, false); const branches = this.getOption(WebhookOptions.WebhookOptions.BRANCHES, false); const authorizationName = this.getOption(WebhookOptions.WebhookOptions.AUTH_NAME); const authorizationSecret = this.getOption(WebhookOptions.WebhookOptions.AUTH_SECRET); const authorizationType = this.getOption(WebhookOptions.WebhookOptions.AUTH_TYPE, false); let repository = ""; let webhook; let apiResponse; if (object.isNil(context)) { this.validateRequiredOptions(); const webhooks = yield EBGWebhookService.EBGWebhookService.listGlobalWebhook(this.apiClient, id); // Can be done safely (not null). BE throws error in case webhook not found webhook = webhooks[0]; } else { repository = this.getOption(WebhookOptions.WebhookOptions.MAPPING, true); this.validateRequiredOptions(); const webhooks = yield EBGWebhookService.EBGWebhookService.listMappingWebhook(this.apiClient, context, repository, id); // Can be done safely (not null). BE throws error in case webhook not found webhook = webhooks[0]; } const payload = { id, url: object.isNil(url) ? webhook.url : url, enabled: object.isNil(enabled) ? webhook.enabled : enabled, name: object.isNil(name) ? webhook.name : name, description: object.isNil(description) ? webhook.description : description, type: index.HookTypeE.WEB, branches: object.isNil(branches) ? webhook.branches : branches, operationTypes: object.isNil(operationTypes) ? webhook.operationTypes : operationTypes, operationResults: object.isNil(operationResults) ? webhook.operationResults : operationResults, authorizationType: object.isNil(authorizationType) ? webhook.authorizationType : authorizationType, authorizationName: object.isNil(authorizationName) ? webhook.authorizationName : authorizationName, authorizationSecret: object.isNil(authorizationSecret) ? undefined : authorizationSecret, }; if (object.isNil(context)) { apiResponse = yield EBGWebhookService.EBGWebhookService.updateGlobalWebhook(this.apiClient, payload); } else { apiResponse = yield EBGWebhookService.EBGWebhookService.updateMappingWebhook(this.apiClient, Object.assign(Object.assign({}, payload), { context, repository: repository || undefined })); } this.console.log(apiResponse.messages.join("\n")); }); } } exports.default = UpdateWebhookHandler;