PinElixir.Customer

Module handling customer operations

Summary

Functions

Given an email and card_map, creates a customer. The map may contain a card or a card token

Given a customer token, deletes the customer

Retrieves all customers

Given a customer token, retrieves customer details

Functions

create(email, map)

Given an email and card_map, creates a customer. The map may contain a card or a card token.

Customer.create("minerva@hogwarts.wiz", %{card_token: "abc_a123" })

OR

card_map = %{
  number: 4200000000000000,
  expiry_month: "10",
  expiry_year: 2016,
  cvc: 456,
  name: "Rubius Hagrid",
  address_line1: "The Game Keepers Cottage",
  address_city: "Hogwarts",
  address_postcode: "H0G",
  address_state: "WA",
  address_country: "Straya"
}

Customer.create("rubius@hogwarts.wiz", %{card: card_map})

returns a tuple

{:ok,
  %{customer: %{card: %{address_city: "Hogwarts", address_country: "Straya",
    address_line1: "The Game Keepers Cottage", address_line2: nil,
    address_postcode: "H0G", address_state: "WA",
    customer_token: "cus_JVk_KByA5JiIsSPWVKt88Q",
    display_number: "XXXX-XXXX-XXXX-0000", expiry_month: 10,
    expiry_year: 2016, name: "Rubius Hagrid", primary: true, scheme: "visa",
    token: "card_EPh4cn4-fEMeZM_osPz1dg"},
    created_at: "2015-11-15T08:40:50Z", email: "hagrid@hogwarts.wiz",
    token: "cus_JVk_KByA5JiIsSPWVKt88Q"}}}

OR

{:error, error_map}
delete(token)

Given a customer token, deletes the customer

return a tuple

{:ok}

OR

{:error, error_map}
get()

Retrieves all customers

Returns a tuple

{:ok,
%{customers: [%{card: %{address_city: "Hogwarts", address_country: "Straya",
      address_line1: "The Game Keepers Cottage", address_line2: nil,
      address_postcode: "H0G", address_state: "WA",
      customer_token: "cus_JVk_KByA5JiIsSPWVKt88Q",
      display_number: "XXXX-XXXX-XXXX-0000", expiry_month: 10,
      expiry_year: 2016, name: "Rubius Hagrid", primary: true, scheme: "visa",
      token: "card_EPh4cn4-fEMeZM_osPz1dg"},
    created_at: "2015-11-15T08:40:50Z", email: "hagrid@hogwarts.wiz",
    token: "cus_JVk_KByA5JiIsSPWVKt88Q"}
  ],
 pagination: %{count: 3, current: 1, next: nil, pages: 1, per_page: 25,
   previous: nil}}}

OR

{:error, error_map}
get(id)

Given a customer token, retrieves customer details

Returns a tuple

{:ok,
 %{card: %{address_city: "Hogwarts", address_country: "Straya",
     address_line1: "The Game Keepers Cottage", address_line2: nil,
     address_postcode: "H0G", address_state: "WA",
     customer_token: "cus_JVk_KByA5JiIsSPWVKt88Q",
     display_number: "XXXX-XXXX-XXXX-0000", expiry_month: 10, expiry_year: 2016,
     name: "Rubius Hagrid", primary: true, scheme: "visa",
     token: "card_EPh4cn4-fEMeZM_osPz1dg"}, created_at: "2015-11-15T08:40:50Z",
   email: "hagrid@hogwarts.wiz", token: "cus_JVk_KByA5JiIsSPWVKt88Q"}}

OR

{:error, error_map}