module BridgeAPI::Client::User

Public Instance Methods

add_user(params = {}) click to toggle source
# File lib/bridge_api/client/user.rb, line 6
def add_user(params = {})
  post("#{API_PATH}#{ADMIN_PATH}#{USER_PATH}", params)
end
add_user_to_role_batch(user_id, params = {}) click to toggle source
# File lib/bridge_api/client/user.rb, line 42
def add_user_to_role_batch(user_id, params = {})
  put("#{API_PATH}#{ADMIN_PATH}#{USER_PATH}/#{user_id}#{ROLE_PATH}#{BATCH_PATH}", params)
end
delete_user(user_id, params = {}) click to toggle source
# File lib/bridge_api/client/user.rb, line 14
def delete_user(user_id, params = {})
  delete("#{API_PATH}#{ADMIN_PATH}#{USER_PATH}/#{user_id}", params)
end
get_all_users(params = {}) click to toggle source
# File lib/bridge_api/client/user.rb, line 38
def get_all_users(params = {})
  get("#{API_PATH}#{AUTHOR_PATH}#{USER_PATH}", params)
end
get_user(user_id, params = {}) click to toggle source
# File lib/bridge_api/client/user.rb, line 10
def get_user(user_id, params = {})
  get("#{API_PATH}#{AUTHOR_PATH}#{USER_PATH}/#{user_id}", params)
end
new_temporary_users(params = {}) click to toggle source
# File lib/bridge_api/client/user.rb, line 46
def new_temporary_users(params = {})
  get("#{API_PATH}#{ADMIN_PATH}#{NEW_TEMPORARY_USERS}", params)
end
restore_deleted_user(user_id, params = {}) click to toggle source
# File lib/bridge_api/client/user.rb, line 22
def restore_deleted_user(user_id, params = {})
  post("#{API_PATH}#{AUTHOR_PATH}#{USER_PATH}/#{user_id}#{RESTORE_PATH}", params)
end
update_user(user_id, params = {}) click to toggle source
# File lib/bridge_api/client/user.rb, line 18
def update_user(user_id, params = {})
  put("#{API_PATH}#{AUTHOR_PATH}#{USER_PATH}/#{user_id}", params)
end
update_user_with_custom_values(user_id, custom_params, params = {}) click to toggle source

Used for easier handling of updating custom params. This method will handle the lookup of existing custom_field_value ids and insert them as needed. user_id Bridge user ID custom_params See build_custom_values_payload method for formatting. params any bridge allowed params to be updated on the user

# File lib/bridge_api/client/user.rb, line 31
def update_user_with_custom_values(user_id, custom_params, params = {})
  params ||= {}
  params['user'] ||= {}
  params['user']['custom_field_values'] = build_custom_values_payload(user_id, custom_params)
  update_user(user_id, params)
end

Private Instance Methods

build_custom_values_payload(user_id, custom_field_values) click to toggle source

user_id Bridge user ID custom_field_values Hash of custom field id with associated value

{
  '1': 'My Custom Value To Be Updated',
  '2': 'Another Custom Value'
}
# File lib/bridge_api/client/user.rb, line 58
def build_custom_values_payload(user_id, custom_field_values)
  users = get_user(user_id, 'includes[]' => 'custom_fields')
  payload = []
  return payload if users.members.empty?

  existing_values = users.linked['custom_field_values']
  custom_field_values.each do |field_id, value|
    field_value_id = begin
                       existing_values.find do |v|
                         v['links']['custom_field']['id'] == field_id.to_s
                       rescue StandardError
                         false
                       end['id']
                     rescue StandardError
                       nil
                     end
    payload << { 'id' => field_value_id, 'custom_field_id' => field_id, 'value' => value }
  end
  payload
end