UNPKG

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

Version:

Endevor Bridge for Git plug-in for Zowe CLI

76 lines (71 loc) 3.85 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 object = require('../../../../utils/object.js'); var index = require('../../../../node_modules/@broadcom/bridge-for-git-zowe-client/dist/index.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 CreateWebhookHandler 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 url = this.getOption(WebhookOptions.WebhookOptions.URL, true); const name = this.getOption(WebhookOptions.WebhookOptions.NAME, true); 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); this.validateRequiredOptions(); let apiResponse; let payload = { url, enabled: true, name, description, type: index.HookTypeE.WEB, operationTypes, operationResults, authorizationType, authorizationName, authorizationSecret, }; if (object.isNil(context)) { apiResponse = yield EBGWebhookService.EBGWebhookService.createGlobalWebhook(this.apiClient, payload); } else { const repository = this.getOption(WebhookOptions.WebhookOptions.MAPPING, true); payload = Object.assign(Object.assign({}, payload), { context, repository, branches }); apiResponse = yield EBGWebhookService.EBGWebhookService.createMappingWebhook(this.apiClient, payload); } this.console.log(apiResponse.messages.join("\n")); }); } } exports.default = CreateWebhookHandler;