Class: MetrifoxSDK::Customers::API

Inherits:
BaseApi
  • Object
show all
Defined in:
lib/metrifox_sdk/customers/api.rb

Instance Method Summary collapse

Instance Method Details

#bulk_create_request(base_url, api_key, request_payload) ⇒ Object



90
91
92
93
94
95
# File 'lib/metrifox_sdk/customers/api.rb', line 90

def bulk_create_request(base_url, api_key, request_payload)
  uri = URI.join(base_url, "customers/bulk-create")
  body = serialize_customer_request(request_payload)
  response = make_request(uri, "POST", api_key, body)
  parse_response(response, "Failed to Bulk Create Customers")
end

#customer_active_subscription_request(base_url, api_key, customer_key) ⇒ Object



44
45
46
47
48
# File 'lib/metrifox_sdk/customers/api.rb', line 44

def customer_active_subscription_request(base_url, api_key, customer_key)
  uri = URI.join(base_url, "customers/#{customer_key}/check-active-subscription")
  response = make_request(uri, "GET", api_key)
  parse_response(response, "Failed to Check Active Subscription")
end

#customer_archive_request(base_url, api_key, customer_key) ⇒ Object



50
51
52
53
54
# File 'lib/metrifox_sdk/customers/api.rb', line 50

def customer_archive_request(base_url, api_key, customer_key)
  uri = URI.join(base_url, "customers/#{customer_key}/archive")
  response = make_request(uri, "POST", api_key)
  parse_response(response, "Failed to Archive Customer")
end

#customer_create_request(base_url, api_key, request_payload) ⇒ Object



9
10
11
12
13
14
# File 'lib/metrifox_sdk/customers/api.rb', line 9

def customer_create_request(base_url, api_key, request_payload)
  uri = URI.join(base_url, "customers/new")
  body = serialize_customer_request(request_payload)
  response = make_request(uri, "POST", api_key, body)
  parse_response(response, "Failed to Create Customer")
end

#customer_delete_request(base_url, api_key, request_payload) ⇒ Object



23
24
25
26
27
28
# File 'lib/metrifox_sdk/customers/api.rb', line 23

def customer_delete_request(base_url, api_key, request_payload)
  customer_key = get_value(request_payload, :customer_key)
  uri = URI.join(base_url, "customers/#{customer_key}")
  response = make_request(uri, "DELETE", api_key)
  parse_response(response, "Failed to DELETE Customer")
end

#customer_details_get_request(base_url, api_key, request_payload) ⇒ Object



37
38
39
40
41
42
# File 'lib/metrifox_sdk/customers/api.rb', line 37

def customer_details_get_request(base_url, api_key, request_payload)
  customer_key = get_value(request_payload, :customer_key)
  uri = URI.join(base_url, "customers/#{customer_key}/details")
  response = make_request(uri, "GET", api_key)
  parse_response(response, "Failed to Fetch Customer Details")
end

#customer_get_request(base_url, api_key, request_payload) ⇒ Object



30
31
32
33
34
35
# File 'lib/metrifox_sdk/customers/api.rb', line 30

def customer_get_request(base_url, api_key, request_payload)
  customer_key = get_value(request_payload, :customer_key)
  uri = URI.join(base_url, "customers/#{customer_key}")
  response = make_request(uri, "GET", api_key)
  parse_response(response, "Failed to Fetch Customer")
end

#customer_list_request(base_url, api_key, request_payload = {}) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/metrifox_sdk/customers/api.rb', line 62

def customer_list_request(base_url, api_key, request_payload = {})
  uri = URI.join(base_url, "customers")
  
  # Build query parameters from the request payload
  query_params = build_query_params(request_payload)
  if query_params && !query_params.empty?
    uri.query = URI.encode_www_form(query_params)
  end
  
  response = make_request(uri, "GET", api_key)
  parse_response(response, "Failed to Fetch Customers")
end

#customer_unarchive_request(base_url, api_key, customer_key) ⇒ Object



56
57
58
59
60
# File 'lib/metrifox_sdk/customers/api.rb', line 56

def customer_unarchive_request(base_url, api_key, customer_key)
  uri = URI.join(base_url, "customers/#{customer_key}/unarchive")
  response = make_request(uri, "POST", api_key)
  parse_response(response, "Failed to Unarchive Customer")
end

#customer_update_request(base_url, api_key, customer_key, request_payload) ⇒ Object



16
17
18
19
20
21
# File 'lib/metrifox_sdk/customers/api.rb', line 16

def customer_update_request(base_url, api_key, customer_key, request_payload)
  uri = URI.join(base_url, "customers/#{customer_key}")
  body = serialize_customer_request(request_payload)
  response = make_request(uri, "PATCH", api_key, body)
  parse_response(response, "Failed to UPDATE Customer")
end

#upload_customers_csv(base_url, api_key, file_path) ⇒ Object



75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/metrifox_sdk/customers/api.rb', line 75

def upload_customers_csv(base_url, api_key, file_path)
  uri = URI.join(base_url, "customers/csv-upload")

  boundary = "----WebKitFormBoundary#{Random.hex(16)}"
  body = build_multipart_body(file_path, boundary)

  headers = {
    "x-api-key" => api_key,
    "Content-Type" => "multipart/form-data; boundary=#{boundary}"
  }

  response = make_raw_request(uri, "POST", headers, body)
  parse_response(response, "Failed to upload CSV")
end