'use strict'; const BbPromise = require('bluebird'); const userStats = require('../../utils/userStats'); class Rollback { constructor(serverless) { this.serverless = serverless; this.commands = { rollback: { usage: 'Rollback the Serverless service to a specific deployment', configDependent: true, lifecycleEvents: ['initialize', 'rollback'], options: { timestamp: { usage: 'Timestamp of the deployment (list deployments with `serverless deploy list`)', shortcut: 't', required: false, }, verbose: { usage: 'Show all stack events during deployment', shortcut: 'v', }, }, commands: { function: { usage: 'Rollback the function to the previous version', lifecycleEvents: ['rollback'], options: { function: { usage: 'Name of the function', shortcut: 'f', required: true, }, version: { usage: 'Version of the function', shortcut: 'v', required: true, }, stage: { usage: 'Stage of the function', shortcut: 's', }, region: { usage: 'Region of the function', shortcut: 'r', }, }, }, }, }, }; this.hooks = { 'after:rollback:rollback': () => BbPromise.bind(this).then(this.track), }; } track() { userStats.track('service_rolledBack'); return BbPromise.resolve(); } } module.exports = Rollback;