Class: Zaius::Subscription

Inherits:
APIResource show all
Defined in:
lib/zaius/subscription.rb

Constant Summary collapse

OBJECT_NAME =
"subscription".freeze

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from APIResource

class_name, #refresh, retrieve, save_nested_resource

Methods included from APIOperations::Request

included

Methods inherited from ZaiusObject

#==, #[], #[]=, #as_json, construct_from, #deleted?, #dirty!, #each, #initialize, #inspect, #keys, #marshal_dump, #marshal_load, protected_fields, #refresh_from, #serialize_params, serialize_params, #to_hash, #to_json, #to_s, #update_attributes, #values

Constructor Details

This class inherits a constructor from Zaius::ZaiusObject

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Zaius::ZaiusObject

Class Method Details

.list(params = {}, opts = {}) ⇒ Object



9
10
11
12
13
# File 'lib/zaius/subscription.rb', line 9

def self.list(params = {}, opts = {})
  resp, opts = request(:get, resource_url, params, opts)

  ZaiusObject.construct_from(resp.data, opts)
end

.opt_in(params = {}, opts = {}) ⇒ Object



47
48
49
50
51
52
53
# File 'lib/zaius/subscription.rb', line 47

def self.opt_in(params = {}, opts = {})
  params[:opted_in] = true

  resp, opts = request(:post, resource_url, params, opts)

  ZaiusObject.construct_from(resp.data, opts)
end

.opt_out(params = {}, opts = {}) ⇒ Object



40
41
42
43
44
45
# File 'lib/zaius/subscription.rb', line 40

def self.opt_out(params = {}, opts = {})
  params[:opted_in] = false
  resp, opts = request(:post, resource_url, params, opts)

  ZaiusObject.construct_from(resp.data, opts)
end

.resource_urlObject



5
6
7
# File 'lib/zaius/subscription.rb', line 5

def self.resource_url
  "/lists/subscriptions"
end

.update(email: nil, list_id: nil, subscribed: false) ⇒ Object



21
22
23
24
25
26
# File 'lib/zaius/subscription.rb', line 21

def self.update(email: nil, list_id: nil, subscribed: false)
  params = { email: email, list_id: list_id, subscribed: subscribed }
  resp, opts = request(:post, resource_url, params)

  ZaiusObject.construct_from(resp.data, opts)
end

.update_list(opted_in: true, email:, lists: []) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/zaius/subscription.rb', line 28

def self.update_list(opted_in: true, email:, lists: [])
  body = lists.map do |list|
    [
      { opted_in: opted_in, email: email },
      { list_id: list[:id], email: email, subscribed: list[:subscribed] }
    ]
  end.flatten
  resp, opts = request(:post, resource_url, body)

  ZaiusObject.construct_from(resp.data, opts)
end

.update_opt_in(params = {}, opts = {}) ⇒ Object



15
16
17
18
19
# File 'lib/zaius/subscription.rb', line 15

def self.update_opt_in(params = {}, opts = {})
  resp, opts = request(:post, resource_url, params, opts)

  ZaiusObject.construct_from(resp.data, opts)
end

Instance Method Details

#resource_urlObject



55
56
57
# File 'lib/zaius/subscription.rb', line 55

def resource_url
  self.class.resource_url
end