UNPKG

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

Version:

Endevor Bridge for Git plug-in for Zowe CLI

84 lines (79 loc) 4.34 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 EBGMFWebhookService = require('../../../../api/service/EBGMFWebhookService.js'); var MFWebhookOptions = require('../../../options/MFWebhookOptions.js'); var imperative = require('@zowe/imperative'); 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 UpdateMfWebhookHandler extends BaseHandler.BaseHandler { processWithSession() { return tslib_es6.__awaiter(this, void 0, void 0, function* () { const id = this.getOption(MFWebhookOptions.MFWebhookOptions.ID, true); const recipient = this.getOption(MFWebhookOptions.MFWebhookOptions.RECIPIENT); const currentLocations = this.getOption(MFWebhookOptions.MFWebhookOptions.WATCH_DIR); const description = this.getOption(MFWebhookOptions.MFWebhookOptions.DESCRIPTION); const authorizationName = this.getOption(MFWebhookOptions.MFWebhookOptions.AUTH_NAME); const authorizationSecret = this.getOption(MFWebhookOptions.MFWebhookOptions.AUTH_SECRET); const enabled = this.getOption(MFWebhookOptions.MFWebhookOptions.ENABLED); let authorization; this.validateRequiredOptions(); const webhooks = yield EBGMFWebhookService.EBGMFWebhookService.listMFWebhookServer(this.apiClient, id); // Can be done safely (not null). BE throws error in case webhook not found const webhook = webhooks[0]; if ((object.isNotNil(authorizationName) && object.isNotNil(authorizationSecret)) || webhook.authorization) { authorization = true; } else if (object.isNil(authorizationName) && object.isNil(authorizationSecret)) { authorization = false; } else { throw new imperative.ImperativeError({ msg: `You must specify both authorization-username and authorization-secret for authorized mf webhooks`, }); } const payload = { url: webhook.url, enabled: object.isNil(enabled) ? webhook.enabled : enabled, recipient: object.isNil(recipient) ? webhook.recipient : recipient, description: object.isNil(description) ? webhook.description : description, authorization, authorizationName: object.isNil(authorizationName) ? webhook.authorizationName : authorizationName, authorizationSecret: object.isNil(authorizationSecret) ? webhook.authorization : authorizationSecret, currentLocations: object.isNil(currentLocations) ? webhook.currentLocations : currentLocations, }; const apiResponse = yield EBGMFWebhookService.EBGMFWebhookService.updateMFWebhookServer(this.apiClient, id, payload); this.console.log(apiResponse.messages.join("\n")); }); } } exports.default = UpdateMfWebhookHandler;