class EasyPost::Services::User

Constants

MODEL_CLASS

The User object can be used to manage your own account and to create child accounts.

Public Instance Methods

all_api_keys() click to toggle source

Retrieve a list of all ApiKey objects.

# File lib/easypost/services/user.rb, line 43
def all_api_keys
  warn '[DEPRECATION] `all_api_keys` is deprecated. Please use `all` in the `api_key` service instead.'
  response = @client.make_request(:get, 'api_keys')

  EasyPost::InternalUtilities::Json.convert_json_to_object(response, EasyPost::Models::ApiKey)
end
all_children(params = {}) click to toggle source

Retrieve all child Users.

# File lib/easypost/services/user.rb, line 83
def all_children(params = {})
  filters = { key: 'children' }

  get_all_helper('users/children', EasyPost::Models::User, params, filters)
end
api_keys(id) click to toggle source

Retrieve a list of ApiKey objects (works for the authenticated user or a child user).

# File lib/easypost/services/user.rb, line 51
  def api_keys(id)
    warn '[DEPRECATION] `api_keys` is deprecated.
Please use `retrieve_api_keys_for_user` in the `api_key` service instead.'

    api_keys = all_api_keys

    if api_keys.id == id
      # This function was called on the authenticated user
      my_api_keys = api_keys.keys
    else
      # This function was called on a child user (authenticated as parent, only return this child user's details).
      my_api_keys = []
      api_keys.children.each do |child|
        if child.id == id
          my_api_keys = child.keys
          break
        end
      end
    end

    my_api_keys
  end
create(params = {}) click to toggle source

Create a child User.

# File lib/easypost/services/user.rb, line 7
def create(params = {})
  response = @client.make_request(:post, 'users', params)

  EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
end
delete(id) click to toggle source

Delete a User

# File lib/easypost/services/user.rb, line 35
def delete(id)
  @client.make_request(:delete, "users/#{id}")

  # Return true if succeeds, an error will be thrown if it fails
  true
end
get_next_page_of_children(collection, page_size = nil) click to toggle source

Get the next page of child users.

# File lib/easypost/services/user.rb, line 90
def get_next_page_of_children(collection, page_size = nil)
  raise EasyPost::Errors::EndOfPaginationError.new unless more_pages?(collection)

  params = { before_id: collection.children.last.id }
  params[:page_size] = page_size unless page_size.nil?

  all_children(params)
end
retrieve(id) click to toggle source

Retrieve a user

# File lib/easypost/services/user.rb, line 14
def retrieve(id)
  response = @client.make_request(:get, "users/#{id}")

  EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
end
retrieve_me() click to toggle source

Retrieve the authenticated User.

# File lib/easypost/services/user.rb, line 21
def retrieve_me
  response = @client.make_request(:get, 'users')

  EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
end
update(id, params = {}) click to toggle source

Update a User

# File lib/easypost/services/user.rb, line 28
def update(id, params = {})
  response = @client.make_request(:put, "users/#{id}", params)

  EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
end
update_brand(id, params = {}) click to toggle source

Update the Brand of a User.

# File lib/easypost/services/user.rb, line 75
def update_brand(id, params = {})
  wrapped_params = { brand: params }
  response = @client.make_request(:get, "users/#{id}/brand", wrapped_params)

  EasyPost::InternalUtilities::Json.convert_json_to_object(response, EasyPost::Models::Brand)
end