Class: Catapult::Subscription

Inherits:
Object
  • Object
show all
Extended by:
CatapultMethods
Defined in:
lib/catapult/subscription.rb

Class Method Summary collapse

Methods included from CatapultMethods

build_request, handle_response

Class Method Details

.create_subscription(campaign, phone) ⇒ Object

returns:

true on success
hash on false


15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/catapult/subscription.rb', line 15

def self.create_subscription(campaign, phone)
  http, request = build_request("/api/subscription_campaigns/#{campaign}/subscriptions.xml", "POST")
  xml = Nokogiri::XML::Builder.new do |x|
    x.subscription{
     x.user{
      x.send(:'mobile-phone', phone)
     }
    }
  end
  request.body = xml.to_xml(:save_with => Nokogiri::XML::Node::SaveOptions::AS_XML | Nokogiri::XML::Node::SaveOptions::NO_DECLARATION).strip
  response = http.request(request)
  handle_response(response)
end

.delete_subscriber(campaign, phone, suppress_message = false) ⇒ Object

returns:

true on success
hash on false


43
44
45
46
47
# File 'lib/catapult/subscription.rb', line 43

def self.delete_subscriber(campaign, phone, suppress_message = false)
  http, request = build_request("/api/subscription_campaigns/#{campaign}/subscriptions/#{phone}.xml?suppress_message=#{suppress_message}", "DELETE")
  response = http.request(request)
  handle_response(response)
end

.list_subscribers(campaign) ⇒ Object



5
6
7
8
9
# File 'lib/catapult/subscription.rb', line 5

def self.list_subscribers(campaign)
  http, request = build_request("/api/subscription_campaigns/#{campaign}/subscriptions.xml")
  response = http.request(request)
  Hash.from_xml(response.body)
end

.read_subscription(campaign, phone) ⇒ Object

returns:

true on success
hash on false


33
34
35
36
37
# File 'lib/catapult/subscription.rb', line 33

def self.read_subscription(campaign, phone)
  http, request = build_request("/api/subscription_campaigns/#{campaign}/subscriptions/#{phone}.xml", "GET")
  response = http.request(request)
  handle_response(response)
end

.update_subscriber(campaign, phone, options = {}) ⇒ Object

options =

'birthday-on' => '02/18/1978',
'email' => '[email protected]',
'gender' => "M"



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/catapult/subscription.rb', line 54

def self.update_subscriber(campaign, phone, options = {})
  http, request = build_request("/api/subscription_campaigns/#{campaign}/subscriptions/#{phone}.xml", "PUT")
  xml = Nokogiri::XML::Builder.new do |x|
    x.subscription{
     x.user{
      x.send(:'mobile-phone', phone)
      x.send(:'carrier_id', options['carrier_id']) if options['carrier_id']
      x.send(:'first-name', options['first-name']) if options['first-name']
      x.send(:'last-name', options['last-name']) if options['last-name']
      x.send(:'birthday-on', options['birthday-on']) if options['birthday-on']
      x.send(:'email', options['email']) if options['email']
      x.send(:'gender', options['gender']) if options['gender']
      x.send(:'postal-code', options['postal-code']) if options['postal-code']
      x.send(:'timezone-id', options['timezone-id']) if options['timezone-id']
     }
    }
  end
  request.body = xml.to_xml(:save_with => Nokogiri::XML::Node::SaveOptions::AS_XML | Nokogiri::XML::Node::SaveOptions::NO_DECLARATION).strip
  response = http.request(request)
  handle_response(response)
end