Class: EasyPost::Services::ReferralCustomer

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

Constant Summary collapse

MODEL_CLASS =
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

#add_credit_card(referral_api_key, number, expiration_month, expiration_year, cvc, priority = 'primary') ⇒ Object

Add credit card to a referral customer. This function requires the ReferralCustomer Customer’s API key.



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/easypost/services/referral_customer.rb', line 44

def add_credit_card(referral_api_key, number, expiration_month, expiration_year, cvc, priority = 'primary')
  easypost_stripe_api_key = retrieve_easypost_stripe_api_key

  begin
    stripe_credit_card_token = create_stripe_token(
      number,
      expiration_month,
      expiration_year,
      cvc,
      easypost_stripe_api_key,
    )
  rescue StandardError
    raise EasyPost::Errors::ExternalApiError.new(EasyPost::Constants::STRIPE_CARD_CREATE_FAILED)
  end

  create_easypost_credit_card(referral_api_key, stripe_credit_card_token, priority)
end

#all(params = {}) ⇒ Object

Retrieve a list of referral customers. This function requires the Partner User’s API key.



27
28
29
30
31
# File 'lib/easypost/services/referral_customer.rb', line 27

def all(params = {})
  filters = { key: 'referral_customers' }

  get_all_helper('referral_customers', MODEL_CLASS, params, filters)
end

#create(params = {}) ⇒ Object

Create a referral customer. This function requires the Partner User’s API key.



7
8
9
10
11
# File 'lib/easypost/services/referral_customer.rb', line 7

def create(params = {})
  response = @client.make_request(:post, 'referral_customers', { user: params })

  EasyPost::InternalUtilities::Json.convert_json_to_object(response, MODEL_CLASS)
end

#get_next_page(collection, page_size = nil) ⇒ Object

Get the next page of referral customers.



34
35
36
37
38
39
40
41
# File 'lib/easypost/services/referral_customer.rb', line 34

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

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

  all(params)
end

#update_email(user_id, email) ⇒ Object

Update a referral customer. This function requires the Partner User’s API key.



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/easypost/services/referral_customer.rb', line 14

def update_email(user_id, email)
  wrapped_params = {
    user: {
      email: email,
    },
  }
  @client.make_request(:put, "referral_customers/#{user_id}", wrapped_params)

  # return true if API succeeds, else an error is throw if it fails.
  true
end