Module: ForestAdminDatasourceZendesk::Plugins::CloseTicket::Messages

Defined in:
lib/forest_admin_datasource_zendesk/plugins/close_ticket/messages.rb

Class Method Summary collapse

Class Method Details

.already_closed_phrase(already_closed) ⇒ Object



26
27
28
29
30
31
# File 'lib/forest_admin_datasource_zendesk/plugins/close_ticket/messages.rb', line 26

def already_closed_phrase(already_closed)
  return nil if already_closed.empty?
  return "Ticket ##{already_closed.first} was already closed." if already_closed.size == 1

  "#{already_closed.size} tickets were already closed: #{already_closed.join(", ")}."
end

.error(failed, status) ⇒ Object



12
13
14
15
16
17
# File 'lib/forest_admin_datasource_zendesk/plugins/close_ticket/messages.rb', line 12

def error(failed, status)
  verb = status == 'closed' ? 'close' : 'mark as solved'
  return "Failed to #{verb} ticket ##{failed.first.first}: #{failed.first.last}" if failed.size == 1

  "Failed to #{verb} all #{failed.size} tickets. First error: #{failed.first.last}"
end

.failed_phrase(failed) ⇒ Object



33
34
35
36
37
# File 'lib/forest_admin_datasource_zendesk/plugins/close_ticket/messages.rb', line 33

def failed_phrase(failed)
  return nil if failed.empty?

  "#{failed.size} failed: #{failed.map(&:first).join(", ")}."
end

.succeeded_phrase(succeeded, status) ⇒ Object



19
20
21
22
23
24
# File 'lib/forest_admin_datasource_zendesk/plugins/close_ticket/messages.rb', line 19

def succeeded_phrase(succeeded, status)
  return nil if succeeded.empty?

  verb = status == 'closed' ? 'closed' : 'marked as solved'
  succeeded.size == 1 ? "Ticket ##{succeeded.first} #{verb}." : "#{succeeded.size} tickets #{verb}."
end

.success(succeeded, already_closed, failed, status) ⇒ Object



7
8
9
10
# File 'lib/forest_admin_datasource_zendesk/plugins/close_ticket/messages.rb', line 7

def success(succeeded, already_closed, failed, status)
  [succeeded_phrase(succeeded, status), already_closed_phrase(already_closed),
   failed_phrase(failed)].compact.join(' ')
end