PagerDuty/lita-pagerduty

View on GitHub
lib/lita/commands/resolve_all.rb

Summary

Maintainability
A
1 hr
Test Coverage
module Commands
  class ResolveAll
    include Base

    def call
      ids = pagerduty.get_incidents(query_params).map { |i| i[:id] }
      pagerduty.manage_incidents(:resolve, ids)
      response message: 'all.resolved', params: { list: ids.join(', ') }
    rescue Exceptions::IncidentsEmptyList
      response message: 'incident.none'
    rescue Exceptions::IncidentManageUnsuccess
      nil
    end

    private

    def query_params
      { statuses: %w[triggered acknowledged] }
    end
  end
end