Class: Readiness::Zendesk::Triggers
- Defined in:
- lib/support_readiness/zendesk/triggers.rb
Overview
Defines the class Triggers within the module Readiness::Zendesk.
Instance Attribute Summary collapse
- #actions ⇒ Object
- #active ⇒ Object
- #category_id ⇒ Object
- #conditions ⇒ Object
- #description ⇒ Object
- #id ⇒ Object
- #position ⇒ Object
- #title ⇒ Object
Class Method Summary collapse
-
.create!(client, trigger) ⇒ Object
Creates a trigger.
-
.delete!(client, trigger) ⇒ Boolean
Deletes a trigger.
-
.delete_many!(client, tids) ⇒ Boolean
Deletes multiple triggers via a batch job.
-
.find(client, tid) ⇒ Hash
Locates a trigger within Zendesk.
-
.find!(client, tid) ⇒ Object
Locates a trigger within Zendesk.
-
.list(client) ⇒ Array
Lists triggers.
-
.update!(client, trigger) ⇒ Object
Updates a trigger.
-
.update_many!(client, triggers) ⇒ Array
Updates multiple triggers.
Instance Method Summary collapse
-
#initialize(object = {}) ⇒ Triggers
constructor
Creates a new Triggers instance.
Methods inherited from Client
auth_error, bad_request_error, convert_actions, convert_conditions, convert_standard_names_to_ids, convert_ticket_form_agent_conditions, convert_ticket_form_brands, convert_ticket_form_end_user_conditions, convert_ticket_form_names_to_ids, convert_view_names_to_ids, convert_view_restrictions, covert_ticket_form_field_ids, create_package!, erb_renderer, handle_request_error, not_found_error, not_processible_error, put_into_archive, recursively_deflate_directory, timestamp_filename, to_clean_json, to_clean_json_with_key, to_hash, to_nearly_clean_json, to_nearly_clean_json_with_key, to_param_string, write_entries
Constructor Details
#initialize(object = {}) ⇒ Triggers
Creates a new Readiness::Zendesk::Triggers instance
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 24 def initialize(object = {}) @actions = object['actions'] @active = object['active'] @category_id = object['category_id'] @conditions = object['conditions'] @description = object['description'] @id = object['id'] @position = object['position'] @title = object['title'] end |
Instance Attribute Details
#actions ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 13 def actions @actions end |
#active ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 13 def active @active end |
#category_id ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 13 def category_id @category_id end |
#conditions ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 13 def conditions @conditions end |
#description ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 13 def description @description end |
#id ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 13 def id @id end |
#position ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 13 def position @position end |
#title ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 13 def title @title end |
Class Method Details
.create!(client, trigger) ⇒ Object
Creates a trigger. Will exit if unsuccessful
152 153 154 155 156 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 152 def self.create!(client, trigger) response = client.connection.post 'triggers', to_clean_json_with_key(trigger, 'trigger') handle_request_error(1, 'Zendesk', response.status, { action: 'Create trigger', message: Oj.load(response.body)}) unless response.status == 201 Triggers.new(Oj.load(response.body)['trigger']) end |
.delete!(client, trigger) ⇒ Boolean
Deletes a trigger. Will exit if unsuccessful
236 237 238 239 240 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 236 def self.delete!(client, trigger) response = client.connection.delete "triggers/#{trigger.id}" handle_request_error(1, 'Zendesk', response.status, { action: 'Delete a trigger', id: trigger.id, message: Oj.load(response.body)}) unless response.status == 204 true end |
.delete_many!(client, tids) ⇒ Boolean
Deletes multiple triggers via a batch job
261 262 263 264 265 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 261 def self.delete_many!(client, tids) response = client.connection.delete("triggers/destroy_many?ids=#{tids.join(',')}") handle_request_error(1, 'Zendesk', response.status, { action: 'Delete many triggers', message: Oj.load(response.body)}) unless response.status == 204 true end |
.find(client, tid) ⇒ Hash
Locates a trigger within Zendesk. This will not exit on error (except Authentication errors)
87 88 89 90 91 92 93 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 87 def self.find(client, tid) response = client.connection.get("triggers/#{tid}") handle_request_error(0, 'Zendesk', response.status, { action: 'get', id: tid }) unless response.status == 200 return Triggers.new(Oj.load(response.body)['trigger']) if response.status == 200 Oj.load(response.body) end |
.find!(client, tid) ⇒ Object
Locates a trigger within Zendesk. This will exit on error
114 115 116 117 118 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 114 def self.find!(client, tid) response = client.connection.get("triggers/#{tid}") handle_request_error(1, 'Zendesk', response.status, { action: 'Find trigger', id: tid }) unless response.status == 200 Triggers.new(Oj.load(response.body)['trigger']) end |
.list(client) ⇒ Array
Lists triggers
53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 53 def self.list(client) array = [] opts = "page[size]=100" loop do response = client.connection.get("triggers?#{opts}") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 body = Oj.load(response.body) array += body['triggers'].map { |t| Triggers.new(t) } break unless body['meta']['has_more'] opts = body['links']['next'].split('?').last end array end |
.update!(client, trigger) ⇒ Object
Updates a trigger. Will exit if unsuccessful
179 180 181 182 183 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 179 def self.update!(client, trigger) response = client.connection.put "triggers/#{trigger.id}", to_clean_json_with_key(trigger, 'trigger') handle_request_error(1, 'Zendesk', response.status, { action: 'Update trigger', id: trigger.id, message: Oj.load(response.body)}) unless response.status == 200 Triggers.new(Oj.load(response.body)['trigger']) end |
.update_many!(client, triggers) ⇒ Array
Updates multiple triggers
209 210 211 212 213 214 |
# File 'lib/support_readiness/zendesk/triggers.rb', line 209 def self.update_many!(client, triggers) data = { triggers: triggers.map { |t| to_hash(t).compact } }.to_json response = client.connection.put('triggers/update_many', data) handle_request_error(1, 'Zendesk', response.status, { action: 'Update many triggers', message: Oj.load(response.body)}) unless response.status == 200 Oj.load(response.body)['triggers'].map { |t| Triggers.new(t) } end |