Class: Readiness::Zendesk::Users
- Defined in:
- lib/support_readiness/zendesk/users.rb
Overview
Merge users
Defines the class Users within the module Readiness::Zendesk.
Instance Attribute Summary collapse
- #active ⇒ Object
- #alias ⇒ Object
- #custom_role_id ⇒ Object
- #default_group_id ⇒ Object
- #details ⇒ Object
- #email ⇒ Object
- #external_id ⇒ Object
- #iana_time_zone ⇒ Object
- #id ⇒ Object
- #last_login_at ⇒ Object
- #locale ⇒ Object
- #locale_id ⇒ Object
- #moderator ⇒ Object
- #name ⇒ Object
- #notes ⇒ Object
- #only_private_comments ⇒ Object
- #organization_id ⇒ Object
- #phone ⇒ Object
- #report_csv ⇒ Object
- #restricted_agent ⇒ Object
- #role ⇒ Object
- #role_type ⇒ Object
- #shared ⇒ Object
- #shared_agent ⇒ Object
- #shared_phone_number ⇒ Object
- #signature ⇒ Object
- #suspended ⇒ Object
- #tags ⇒ Object
- #ticket_restriction ⇒ Object
- #time_zone ⇒ Object
- #two_factor_auth_enabled ⇒ Object
- #user_fields ⇒ Object
- #verified ⇒ Object
Class Method Summary collapse
-
.all_tickets(client, user) ⇒ Array
Lists all tickets involving an user (requested, cc’d, assigned).
-
.assigned_tickets(client, user) ⇒ Array
Lists tickets that a user is assigned.
-
.ccd_tickets(client, user) ⇒ Array
Lists tickets that a user is CC’d on.
-
.count(client, permission_set = false, roles = []) ⇒ Hash
Show information on the approximate count of users.
-
.create!(client, user) ⇒ Object
Creates an user.
-
.create_many!(client, users) ⇒ object
Creates multiple users via a batch job.
-
.create_or_update!(client, user) ⇒ Object
Creates or updates an user.
-
.create_or_update_many!(client, users) ⇒ object
Creates or updates multiple users via a batch job.
-
.delete!(client, user) ⇒ Boolean
Deletes an user.
-
.delete_many!(client, uids) ⇒ object
Deletes multiple users via a batch job.
-
.delete_permanently!(client, uid) ⇒ Hash
Deletes a deleted user.
-
.deleted_count(client) ⇒ Hash
Show information on the approximate count of deleted users.
-
.find(client, uid) ⇒ Object
Locates an user within Zendesk.
-
.find!(client, uid) ⇒ Object
Locates an user within Zendesk.
-
.find_deleted!(client, did) ⇒ Hash
Show information on a deleted user.
-
.find_many(client, uids) ⇒ Array
Locates up to 100 users within Zendesk.
-
.group_memberships(client, user) ⇒ Array
Lists group memberships for a user.
-
.list(client, permission_set = false, roles = []) ⇒ Array
Lists the first 100 users.
-
.list_deleted(client) ⇒ Array
Lists the first 100 deleted users.
-
.list_many(client, limit = 0, permission_set = false, roles = []) ⇒ Array
Lists many users.
-
.list_many_deleted(client, limit = 0, permission_set = false) ⇒ Array
Lists many deleted users.
-
.logout_many(client, uids) ⇒ Hash
Force logs out users.
-
.organization(client, user) ⇒ Object
Lists organization a user is part of.
-
.organization_memberships(client, user) ⇒ Array
Lists organization memberships for a user.
-
.set_default_group!(client, user, membership) ⇒ Array
Sets the default group membership of a given user.
-
.set_default_organization!(client, user, membership) ⇒ Array
Sets the default organization membership of a given user.
-
.set_password!(client, user, password) ⇒ Array
Sets the password for a user.
-
.tickets(client, user) ⇒ Array
Lists requests for an user.
-
.update!(client, user) ⇒ Object
Updates an user.
-
.update_many!(client, users) ⇒ object
Updates multiple users via a batch job.
Instance Method Summary collapse
-
#initialize(object = {}) ⇒ Users
constructor
Creates a new Users 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 = {}) ⇒ Users
Creates a new Readiness::Zendesk::Users instance
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/support_readiness/zendesk/users.rb', line 25 def initialize(object = {}) @active = object['active'] @alias = object['alias'] @custom_role_id = object['custom_role_id'] @default_group_id = object['default_group_id'] @details = object['details'] @email = object['email'] @external_id = object['external_id'] @iana_time_zone = object['iana_time_zone'] @id = object['id'] @last_login_at = object['last_login_at'] @locale = object['locale'] @locale_id = object['locale_id'] @moderator = object['moderator'] @name = object['name'] @notes = object['notes'] @only_private_comments = object['only_private_comments'] @organization_id = object['organization_id'] @phone = object['phone'] @report_csv = object['report_csv'] @restricted_agent = object['restricted_agent'] @role = object['role'] @role_type = object['role_type'] @shared = object['shared'] @shared_agent = object['shared_agent'] @shared_phone_number = object['shared_phone_number'] @signature = object['signature'] @suspended = object['suspended'] @tags = object['tags'] @ticket_restriction = object['ticket_restriction'] @time_zone = object['time_zone'] @two_factor_auth_enabled = object['two_factor_auth_enabled'] @user_fields = object['user_fields'] @verified = object['verified'] end |
Instance Attribute Details
#active ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def active @active end |
#alias ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def alias @alias end |
#custom_role_id ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def custom_role_id @custom_role_id end |
#default_group_id ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def default_group_id @default_group_id end |
#details ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def details @details end |
#email ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def email @email end |
#external_id ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def external_id @external_id end |
#iana_time_zone ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def iana_time_zone @iana_time_zone end |
#id ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def id @id end |
#last_login_at ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def last_login_at @last_login_at end |
#locale ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def locale @locale end |
#locale_id ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def locale_id @locale_id end |
#moderator ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def moderator @moderator end |
#name ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def name @name end |
#notes ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def notes @notes end |
#only_private_comments ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def only_private_comments @only_private_comments end |
#organization_id ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def organization_id @organization_id end |
#phone ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def phone @phone end |
#report_csv ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def report_csv @report_csv end |
#restricted_agent ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def restricted_agent @restricted_agent end |
#role ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def role @role end |
#role_type ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def role_type @role_type end |
#shared ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def shared @shared end |
#shared_agent ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def shared_agent @shared_agent end |
#shared_phone_number ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def shared_phone_number @shared_phone_number end |
#signature ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def signature @signature end |
#suspended ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def suspended @suspended end |
#tags ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def @tags end |
#ticket_restriction ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def ticket_restriction @ticket_restriction end |
#time_zone ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def time_zone @time_zone end |
#two_factor_auth_enabled ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def two_factor_auth_enabled @two_factor_auth_enabled end |
#user_fields ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def user_fields @user_fields end |
#verified ⇒ Object
14 15 16 |
# File 'lib/support_readiness/zendesk/users.rb', line 14 def verified @verified end |
Class Method Details
.all_tickets(client, user) ⇒ Array
Lists all tickets involving an user (requested, cc’d, assigned).
544 545 546 |
# File 'lib/support_readiness/zendesk/users.rb', line 544 def self.all_tickets(client, user) (tickets(client, user) + ccd_tickets(client, user) + assigned_tickets(client, user)).uniq { |t| t.id }.sort_by { |t| t.id } end |
.assigned_tickets(client, user) ⇒ Array
Lists tickets that a user is assigned.
638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 |
# File 'lib/support_readiness/zendesk/users.rb', line 638 def self.assigned_tickets(client, user) return 0 if user.role == 'end-user' array = [] opts = "page[size]=100" loop do response = client.connection.get("users/#{user.id}/tickets/assigned?#{opts}") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 body = Oj.load(response.body) array += body['tickets'].map { |t| Tickets.new(t) } break unless body['meta']['has_more'] opts = body['links'] ['next'].split('?').last end array end |
.ccd_tickets(client, user) ⇒ Array
Lists tickets that a user is CC’d on.
603 604 605 606 607 608 609 610 611 612 613 614 615 616 |
# File 'lib/support_readiness/zendesk/users.rb', line 603 def self.ccd_tickets(client, user) array = [] opts = "page[size]=100" loop do response = client.connection.get("users/#{user.id}/tickets/ccd?#{opts}") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 body = Oj.load(response.body) array += body['tickets'].map { |t| Tickets.new(t) } break unless body['meta']['has_more'] opts = body['links'] ['next'].split('?').last end array end |
.count(client, permission_set = false, roles = []) ⇒ Hash
Show information on the approximate count of users.
150 151 152 153 154 155 156 157 |
# File 'lib/support_readiness/zendesk/users.rb', line 150 def self.count(client, = false, roles = []) opts = '' opts += "&permission_set=#{}" if opts += roles.map { |r| "&role[]=#{r}" }.join('') unless roles.count.zero? response = client.connection.get("users/count?#{opts}") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 Oj.load(response.body)['count'] end |
.create!(client, user) ⇒ Object
Creates an user. Will exit if unsuccessful
262 263 264 265 266 |
# File 'lib/support_readiness/zendesk/users.rb', line 262 def self.create!(client, user) response = client.connection.post 'users', to_clean_json_with_key(user, 'user') handle_request_error(1, 'Zendesk', response.status, { action: 'Create user', message: Oj.load(response.body)}) unless response.status == 201 Users.new(Oj.load(response.body)['user']) end |
.create_many!(client, users) ⇒ object
Creates multiple users via a batch job
707 708 709 710 711 712 |
# File 'lib/support_readiness/zendesk/users.rb', line 707 def self.create_many!(client, users) data = { users: users.map { |u| to_hash(u).compact } }.to_json response = client.connection.post('users/create_many', data) handle_request_error(1, 'Zendesk', response.status, { action: 'Create many users', message: Oj.load(response.body)}) unless response.status == 200 JobStatuses.new(Oj.load(response.body)['job_status']) end |
.create_or_update!(client, user) ⇒ Object
Creates or updates an user. Will exit if unsuccessful
306 307 308 309 310 |
# File 'lib/support_readiness/zendesk/users.rb', line 306 def self.create_or_update!(client, user) response = client.connection.post 'users/create_or_update', to_clean_json_with_key(user, 'user') handle_request_error(1, 'Zendesk', response.status, { action: 'Create or update user', id: user.email, message: Oj.load(response.body)}) unless [200, 201].include?(response.status) Users.new(Oj.load(response.body)['user']) end |
.create_or_update_many!(client, users) ⇒ object
Creates or updates multiple users via a batch job
739 740 741 742 743 744 |
# File 'lib/support_readiness/zendesk/users.rb', line 739 def self.create_or_update_many!(client, users) data = { users: users.map { |u| to_hash(u).compact } }.to_json response = client.connection.put('users/create_or_update_many', data) handle_request_error(1, 'Zendesk', response.status, { action: 'Create or update many users', message: Oj.load(response.body)}) unless response.status == 200 JobStatuses.new(Oj.load(response.body)['job_status']) end |
.delete!(client, user) ⇒ Boolean
Deletes an user. Will exit if unsuccessful
359 360 361 362 363 |
# File 'lib/support_readiness/zendesk/users.rb', line 359 def self.delete!(client, user) response = client.connection.delete "users/#{user.id}" handle_request_error(1, 'Zendesk', response.status, { action: 'Delete an user', id: user.id, message: Oj.load(response.body)}) unless response.status == 204 true end |
.delete_many!(client, uids) ⇒ object
Deletes multiple users via a batch job
796 797 798 799 800 |
# File 'lib/support_readiness/zendesk/users.rb', line 796 def self.delete_many!(client, uids) response = client.connection.delete("users/destroy_many?ids=#{uids.join(',')}") handle_request_error(1, 'Zendesk', response.status, { action: 'Delete many users', message: Oj.load(response.body)}) unless response.status == 200 JobStatuses.new(Oj.load(response.body)['job_status']) end |
.delete_permanently!(client, uid) ⇒ Hash
Deletes a deleted user. This will exit if unsuccessful
384 385 386 387 388 |
# File 'lib/support_readiness/zendesk/users.rb', line 384 def self.delete_permanently!(client, uid) response = client.connection.delete "deleted_users/#{uid}" handle_request_error(1, 'Zendesk', response.status, { action: 'Delete user permanently', id: uid, message: Oj.load(response.body)}) unless response.status == 200 Oj.load(response.body)['deleted_user'] end |
.deleted_count(client) ⇒ Hash
Show information on the approximate count of deleted users.
468 469 470 471 472 |
# File 'lib/support_readiness/zendesk/users.rb', line 468 def self.deleted_count(client) response = client.connection.get('deleted_users/count') handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 Oj.load(response.body)['count'] end |
.find(client, uid) ⇒ Object
Locates an user within Zendesk. This will not exit on error (except Authentication errors)
178 179 180 181 182 183 184 |
# File 'lib/support_readiness/zendesk/users.rb', line 178 def self.find(client, uid) response = client.connection.get("users/#{uid}") handle_request_error(0, 'Zendesk', response.status, { action: 'get', id: uid }) unless response.status == 200 return Users.new(Oj.load(response.body)['user']) if response.status == 200 Oj.load(response.body) end |
.find!(client, uid) ⇒ Object
Locates an user within Zendesk. This will exit on error
205 206 207 208 209 |
# File 'lib/support_readiness/zendesk/users.rb', line 205 def self.find!(client, uid) response = client.connection.get("users/#{uid}") handle_request_error(1, 'Zendesk', response.status, { action: 'Find user', id: uid }) unless response.status == 200 Users.new(Oj.load(response.body)['user']) end |
.find_deleted!(client, did) ⇒ Hash
Show information on a deleted user
493 494 495 496 497 |
# File 'lib/support_readiness/zendesk/users.rb', line 493 def self.find_deleted!(client, did) response = client.connection.get("deleted_users/#{did}") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 Oj.load(response.body)['deleted_user'] end |
.find_many(client, uids) ⇒ Array
Locates up to 100 users within Zendesk.
230 231 232 233 234 |
# File 'lib/support_readiness/zendesk/users.rb', line 230 def self.find_many(client, uids) response = client.connection.get("users/show_many?ids=#{uids.join(',')}") handle_request_error(0, 'Zendesk', response.status, { action: 'get', id: uids }) unless response.status == 200 Oj.load(response.body)['users'].map { |o| Users.new(o) } end |
.group_memberships(client, user) ⇒ Array
Lists group memberships for a user
885 886 887 888 889 |
# File 'lib/support_readiness/zendesk/users.rb', line 885 def self.group_memberships(client, user) response = client.connection.get("users/#{user.id}/group_memberships?page[size]=100") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 Oj.load(response.body)['group_memberships'].map { |m| GroupMemberships.new(m) } end |
.list(client, permission_set = false, roles = []) ⇒ Array
Lists the first 100 users
81 82 83 84 85 86 87 88 |
# File 'lib/support_readiness/zendesk/users.rb', line 81 def self.list(client, = false, roles = []) opts = '' opts += "&permission_set=#{}" if opts += roles.map { |r| "&role[]=#{r}" }.join('') unless roles.count.zero? response = client.connection.get("users?page[size]=100&#{opts}") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 Oj.load(response.body)['users'].map { |u| Users.new(u) } end |
.list_deleted(client) ⇒ Array
Lists the first 100 deleted users
408 409 410 411 412 |
# File 'lib/support_readiness/zendesk/users.rb', line 408 def self.list_deleted(client) response = client.connection.get("deleted_users?page[size]=100") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 Oj.load(response.body)['deleted_users'] end |
.list_many(client, limit = 0, permission_set = false, roles = []) ⇒ Array
Lists many users. Does not stop until it ends or the page limit is hit. This method can take a long time to run depending on the parameters used.
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/support_readiness/zendesk/users.rb', line 112 def self.list_many(client, limit = 0, = false, roles = []) array = [] opts = "page[size]=100" opts += "&permission_set=#{}" if opts += roles.map { |r| "&role[]=#{r}" }.join('') unless roles.count.zero? loop do response = client.connection.get("users?#{opts}") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 body = Oj.load(response.body) array += body['users'].map { |u| Users.new(u) } break if limit != 0 && array.count >= (limit * 100) break unless body['meta']['has_more'] opts = body['links'] ['next'].split('?').last end array end |
.list_many_deleted(client, limit = 0, permission_set = false) ⇒ Array
Lists many deleted users. Does not stop until it ends or the page limit is hit. This method can take a long time to run depending on the parameters used.
434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 |
# File 'lib/support_readiness/zendesk/users.rb', line 434 def self.list_many_deleted(client, limit = 0, = false) array = [] opts = "page[size]=100" loop do response = client.connection.get("deleted_users?#{opts}") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 body = Oj.load(response.body) array += body['deleted_users'] break if limit != 0 && array.count >= (limit * 100) break unless body['meta']['has_more'] opts = body['links'] ['next'].split('?').last end array end |
.logout_many(client, uids) ⇒ Hash
Force logs out users
518 519 520 521 522 |
# File 'lib/support_readiness/zendesk/users.rb', line 518 def self.logout_many(client, uids) response = client.connection.get("users/logout_many?ids=#{uids.join(',')}") handle_request_error(0, 'Zendesk', response.status) unless response.status == 202 true end |
.organization(client, user) ⇒ Object
Lists organization a user is part of.
675 676 677 678 679 |
# File 'lib/support_readiness/zendesk/users.rb', line 675 def self.organization(client, user) return nil if user.organization_id.nil? Organizations.find(client, user.organization_id) end |
.organization_memberships(client, user) ⇒ Array
Lists organization memberships for a user
822 823 824 825 826 827 828 829 830 831 832 833 834 835 |
# File 'lib/support_readiness/zendesk/users.rb', line 822 def self.organization_memberships(client, user) array = [] opts = "page[size]=100" loop do response = client.connection.get("users/#{user.id}/organization_memberships?#{opts}") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 body = Oj.load(response.body) array += body['organization_memberships'].map { |o| OrganizationMemberships.new(o) } break unless body['meta']['has_more'] opts = body['links'] ['next'].split('?').last end array end |
.set_default_group!(client, user, membership) ⇒ Array
Sets the default group membership of a given user
913 914 915 916 917 |
# File 'lib/support_readiness/zendesk/users.rb', line 913 def self.set_default_group!(client, user, membership) response = client.connection.put("users/#{user.id}/group_memberships/#{membership.id}/make_default") handle_request_error(1, 'Zendesk', response.status, { action: 'Set group as default', message: Oj.load(response.body)}) unless response.status == 200 GroupMemberships.new(Oj.load(response.body)['group_memberships']) end |
.set_default_organization!(client, user, membership) ⇒ Array
Sets the default organization membership of a given user
859 860 861 862 863 |
# File 'lib/support_readiness/zendesk/users.rb', line 859 def self.set_default_organization!(client, user, membership) response = client.connection.put("users/#{user.id}/organization_memberships/#{membership.id}/make_default") handle_request_error(1, 'Zendesk', response.status, { action: 'Set org as default', message: Oj.load(response.body)}) unless response.status == 200 OrganizationMemberships.new(Oj.load(response.body)['organization_membership']) end |
.set_password!(client, user, password) ⇒ Array
Sets the password for a user
940 941 942 943 944 |
# File 'lib/support_readiness/zendesk/users.rb', line 940 def self.set_password!(client, user, password) response = client.connection.post "users/#{user.id}/password", { password: password }.to_json handle_request_error(1, 'Zendesk', response.status, { action: 'Set user password', id: user.id, message: Oj.load(response.body)}) unless response.status == 200 true end |
.tickets(client, user) ⇒ Array
Lists requests for an user.
568 569 570 571 572 573 574 575 576 577 578 579 580 581 |
# File 'lib/support_readiness/zendesk/users.rb', line 568 def self.tickets(client, user) array = [] opts = "page[size]=100" loop do response = client.connection.get("users/#{user.id}/tickets/requested?#{opts}") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 body = Oj.load(response.body) array += body['tickets'].map { |t| Tickets.new(t) } break unless body['meta']['has_more'] opts = body['links'] ['next'].split('?').last end array end |
.update!(client, user) ⇒ Object
Updates an user. Will exit if unsuccessful
333 334 335 336 337 |
# File 'lib/support_readiness/zendesk/users.rb', line 333 def self.update!(client, user) response = client.connection.put "users/#{user.id}", to_clean_json_with_key(user, 'user') handle_request_error(1, 'Zendesk', response.status, { action: 'Update user', id: user.id, message: Oj.load(response.body)}) unless response.status == 200 Users.new(Oj.load(response.body)['user']) end |
.update_many!(client, users) ⇒ object
Updates multiple users via a batch job
770 771 772 773 774 775 |
# File 'lib/support_readiness/zendesk/users.rb', line 770 def self.update_many!(client, users) data = { users: users.map { |u| to_hash(u).compact } }.to_json response = client.connection.post('users/update_many', data) handle_request_error(1, 'Zendesk', response.status, { action: 'Update many users', message: Oj.load(response.body)}) unless response.status == 200 JobStatuses.new(Oj.load(response.body)['job_status']) end |