class ApigeeTool < ThorCli
  namespace 'apigeetool'
  default_task :listdeployments

  no_commands do
    def load_config
      @username = ApigeeCli.configuration.username
      @password = ApigeeCli.configuration.password
      @org      = ApigeeCli.configuration.org
      @env      = environment
    end
  end

  desc 'deploy', 'Deploy a proxy'
  def deploy(*args)
    load_config
    say `apigeetool deployproxy -u #{@username} -p #{@password} -o #{@org} -e #{@env} #{args.join(' ')}`
  end

  desc 'nodedeploy', 'Deploy a node app'
  def nodedeploy(*args)
    load_config
    say `apigeetool deploynodeapp -u #{@username} -p #{@password} -o #{@org} -e #{@env} #{args.join(' ')}`
  end

  desc 'undeploy', 'Undeploy a proxy or node app'
  def undeploy(*args)
    load_config
    say `apigeetool undeploy -u #{@username} -p #{@password} -o #{@org} -e #{@env} #{args.join(' ')}`
  end

  desc 'listdeployments', 'List all the deployments for a given environment'
  def listdeployments(*args)
    load_config
    say `apigeetool listdeployments -u #{@username} -p #{@password} -o #{@org} -e #{@env} #{args.join(' ')}`
  end

  desc 'fetchproxy', 'Download a proxy as a zip file'
  def fetchproxy(*args)
    load_config
    say `apigeetool fetchproxy -u #{@username} -p #{@password} -o #{@org} -e #{@env} #{args.join(' ')}`
  end

  desc 'delete', 'Delete a proxy or node app'
  def deleteproxy(*args)
    load_config
    say `apigeetool delete -u #{@username} -p #{@password} -o #{@org} -e #{@env} #{args.join(' ')}`
  end

  desc 'getlogs', 'Retrieve the last set of logs from a Node app'
  def getlogs(*args)
    load_config
    say `apigeetool getlogs -u #{@username} -p #{@password} -o #{@org} -e #{@env} #{args.join(' ')}`
  end
end