Class: EasyPost::Services::User

Inherits:
Service
  • Object
show all
Defined in:
lib/easypost/services/user.rb

Constant Summary collapse

MODEL_CLASS =

:nodoc:

EasyPost::Models::User

Instance Method Summary collapse

Methods inherited from Service

#initialize

Constructor Details

This class inherits a constructor from EasyPost::Services::Service

Instance Method Details

#all_children(params = {}) ⇒ Object

Retrieve all child Users.



51
52
53
54
55
# File 'lib/easypost/services/user.rb', line 51

def all_children(params = {})
  filters = { key: 'children' }

  get_all_helper('users/children', EasyPost::Models::User, params, filters)
end

#create(params = {}) ⇒ Object

Create a child User.



7
8
9
10
11
# 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) ⇒ Object

Delete a User



35
36
37
38
39
40
# 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) ⇒ Object

Get the next page of child users.



58
59
60
61
62
63
64
65
# File 'lib/easypost/services/user.rb', line 58

def get_next_page_of_children(collection, page_size = nil)
  raise EasyPost::Errors::EndOfPaginationError.new unless more_pages?(collection)

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

  all_children(params)
end

#retrieve(id) ⇒ Object

Retrieve a user



14
15
16
17
18
# 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_meObject

Retrieve the authenticated User.



21
22
23
24
25
# 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 = {}) ⇒ Object

Update a User



28
29
30
31
32
# 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 = {}) ⇒ Object

Update the Brand of a User.



43
44
45
46
47
48
# File 'lib/easypost/services/user.rb', line 43

def update_brand(id, params = {})
  wrapped_params = { brand: params }
  response = @client.make_request(:patch, "users/#{id}/brand", wrapped_params)

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