deep-package-manager
Version:
DEEP Package Manager
65 lines (56 loc) • 1.5 kB
JavaScript
/**
* Created by mgoria on 02/02/17.
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.APIGatewayPlanDriver = undefined;
var _AbstractDriver = require('./AbstractDriver');
class APIGatewayPlanDriver extends _AbstractDriver.AbstractDriver {
/**
* @param {*} args
*/
constructor(...args) {
super(...args);
}
/**
* @returns {String}
*/
service() {
return 'APIGatewayPlan';
}
/**
* @param {String} resourceId
* @param {Object} resourceData
* @param {Function} cb
* @private
*/
_removeResource(resourceId, resourceData, cb) {
this._removePlanAssociatedStages(resourceData.apiStages).then(data => {
this._awsService.deleteUsagePlan({ usagePlanId: resourceId }, error => {
cb(error);
});
}).catch(cb);
}
/**
* @param {Object[]|null} apiStages
* @returns {Promise}
* @private
*/
_removePlanAssociatedStages(apiStages) {
let deleteStagePromises = [];
if (apiStages && apiStages.length > 0) {
apiStages.forEach(apiStage => {
deleteStagePromises.push(this._awsService.deleteStage({
restApiId: apiStage.apiId,
stageName: apiStage.stage
}).promise().catch(error => {
console.error(`Error deleting "${apiStage.stage}" stage from "${apiStage.apiId}" api gateway. ${error}`);
}));
});
}
return Promise.all(deleteStagePromises);
}
}
exports.APIGatewayPlanDriver = APIGatewayPlanDriver;