africas_talking 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4722fe942f4373d4ecc6288ac2c901ae7afe48b7
4
- data.tar.gz: 38ad1e6863e51a4ef655b99b6313dc3aeeff5ce8
3
+ metadata.gz: 976f55a5249626e5675cf40c54094c7d9d77ab2f
4
+ data.tar.gz: 77bc53c0d10571b039e37cb16d2270325d76d95f
5
5
  SHA512:
6
- metadata.gz: 85860100e4df575bb327d1b9dfec5d7dd8c7331b08c424957554b455b3b49954fab44a686978f9721ef77c97e4226cd7ee14848209e7727c4b72b316c1e27d11
7
- data.tar.gz: d37beab5f552bbe610bd1bd1a9138e00148079db3c59096bf33fa1212e3eeed6d061ca47b6bad4a13fb01e5a4210ebb9935b057e872831b4fee58e35fc4b851f
6
+ metadata.gz: 9fc3ebbb8d19e2037870d82d13d33f1a1f5b943bbe3522797c03040cfadd11277544a02b1876bb05c057a7760fe0d85c68c16f89c42cb563d443540742f41352
7
+ data.tar.gz: eabfd6eb1cbca68841e462087042b83468aa7a0035a6addee704b7b03608652d8d9e8656570ef48a4981c7c13d5e296b2ca9303e2c6c1b044498ee934a811104
@@ -9,12 +9,14 @@ class AfricasTalking::Base
9
9
  end
10
10
 
11
11
  def post(url, json_body=nil)
12
- Typhoeus.post("#{BASE_URI}#{url}", body: json_body, headers: headers)
13
- end
12
+ response = Typhoeus.post("#{BASE_URI}#{url}", body: json_body, headers: headers)
13
+ process_api_response(response)
14
+ end
14
15
 
15
- def get(url)
16
- Typhoeus.post("#{BASE_URI}#{url}", headers: headers)
17
- end
16
+ def get(url)
17
+ response = Typhoeus.post("#{BASE_URI}#{url}", headers: headers)
18
+ response.options[:response_code] == 200 ? build_messages_array(response) : api_error_messages(response)
19
+ end
18
20
 
19
21
  def parse_api_errors(response)
20
22
  reports = parse_api_response(response)["SMSMessageData"]["Recipients"]
@@ -39,4 +41,10 @@ class AfricasTalking::Base
39
41
  {'Accept' => "application/json", 'apiKey'=> 'c6ec656ed9bceb689289ccaa6e38d7f6c1b0718a1237b4c13391d1efc1108bfb'}
40
42
  end
41
43
 
44
+ def process_api_response(response)
45
+ return parse_api_response(response) if response.options[:response_code] == 200
46
+ return parse_api_errors(response) if response.options[:response_code] == 201
47
+ raise api_error_messages(response)
48
+ end
49
+
42
50
  end
@@ -1,5 +1,5 @@
1
1
  class AfricasTalking::Message < AfricasTalking::Base
2
-
2
+
3
3
  #POST
4
4
  #/version1/messaging
5
5
  #----------------------------------------------------------------------------
@@ -8,8 +8,7 @@ class AfricasTalking::Message < AfricasTalking::Base
8
8
  # to = "+254711XXXYYY,+254733YYYZZZ";
9
9
  # And of course we want our recipients to know what we really do
10
10
  def deliver(recipients, message, username)
11
- response = post('/version1/messaging', {username: username, message: message, to: prepare_recipients(recipients)})
12
- process_api_response(response)
11
+ post('/version1/messaging', {username: username, message: message, to: prepare_recipients(recipients)})
13
12
  end
14
13
 
15
14
  #POST
@@ -19,14 +18,13 @@ class AfricasTalking::Message < AfricasTalking::Base
19
18
  # sender = "shortCode or senderId"
20
19
 
21
20
  def deliver_with_shortcode(recipients, message, from, username)
22
- response = post('/version1/messaging', {username: username, message: message, to: recipients, from: from})
23
- process_api_response(response)
21
+ post('/version1/messaging', {username: username, message: message, to: recipients, from: from})
24
22
  end
25
23
 
26
24
  #POST
27
25
  #/version1/messaging
28
26
  #----------------------------------------------------------------------------
29
- # sender = nil #
27
+ # sender = nil #
30
28
  # bulkSMSMode # This should always be 1 for bulk messages
31
29
  # # enqueue flag is used to queue messages incase you are sending a high volume.
32
30
  # # The default value is 0.
@@ -35,11 +33,9 @@ class AfricasTalking::Message < AfricasTalking::Base
35
33
  # reports = gateway.sendMessage(to, message, sender, bulkSMSMode, enqueue)
36
34
 
37
35
  def enqueue_messages(opts)
38
- body={
36
+ post('/version1/messaging', {
39
37
  to: opts.fetch(:recipients), message: opts.fetch(:message, ""), sender: opts.fetch(:sender, nil),
40
- enqueue: opts.fetch(:enqueue,1), bulkSMSMode: opts.fetch(:bulkSMSMode, 1), username: opts.fetch(:username)}
41
- response = post('/version1/messaging', body)
42
- process_api_response(response)
38
+ enqueue: opts.fetch(:enqueue,1), bulkSMSMode: opts.fetch(:bulkSMSMode, 1), username: opts.fetch(:username)})
43
39
  end
44
40
 
45
41
  #POST
@@ -51,42 +47,29 @@ class AfricasTalking::Message < AfricasTalking::Base
51
47
  # To send a premium message, build a HASH (as shown below) with the following attributes keeping in mind the defaults.
52
48
  # 1.Specify your premium shortCode and keyword
53
49
  # 2.Set keyword as None where not used (Mostly for onDemand services)
54
- # 3.Set the bulkSMSMode flag to 0 so that the subscriber gets charged
50
+ # 3.Set the bulkSMSMode flag to 0 so that the subscriber gets charged
55
51
  # 4.Set the enqueue flag to 0 so that your message will not be queued or to 1 for many messages
56
52
  # 5.Incase of an onDemand service, specify the link id. else set it to nil
57
53
  # 6.linkId is received from the message sent by subscriber to your onDemand service
58
54
  # 7.Specify retryDurationInHours: The numbers of hours our API should retry to send the message incase it doesn't go through.
59
- # opts={recipients: "0710335602", message: "Hey there testing something awesome", bulkSMSMode: 0, shortCode:"XXXXX", enqueue: 0, keyword: nil, linkId: "messageLinkId"}
60
-
55
+ # opts={recipients: "0710335602", message: "Hey there testing something awesome", bulkSMSMode: 0, shortCode:"XXXXX", enqueue: 0, keyword: nil, linkId: "messageLinkId"}
56
+
61
57
  def deliver_premium_messages(opts)
62
- body={
58
+ post('/version1/messaging', {
63
59
  to: opts.fetch(:recipients), message: opts.fetch(:message),
64
60
  keyword: opts.fetch(:keyword, nil), enqueue: opts.fetch(:enqueue, 0), username: opts.fetch(:username),
65
- linkId: opts.fetch(:linkId, nil), retryDurationInHours: opts.fetch(:retryDurationInHours, 1)}
66
- response = post('/version1/messaging', body)
67
- process_api_response(response)
61
+ linkId: opts.fetch(:linkId, nil), retryDurationInHours: opts.fetch(:retryDurationInHours, 1)})
68
62
  end
69
63
 
70
-
71
64
  #GET
72
65
  #/?username=#{ENV['africas_talking_username']}&lastReceivedId=#{last_received_id}
73
66
  # The gateway will return 10 messages at a time back to you, starting with
74
67
  # what you currently believe is the lastReceivedId. Specify 0 for the first
75
68
  # time you access the gateway, and the ID of the last message we sent you
76
69
  # on subsequent results
77
-
70
+ #
78
71
  def fetch_messages(username, last_received_id=0)
79
- response = get("/version1/messaging?username=#{username}&lastReceivedId=#{last_received_id}")
80
- return build_messages_array(response) if response.options[:response_code] == 200
81
- raise api_error_messages(response)
82
- end
83
-
84
- private
85
-
86
- def process_api_response(response)
87
- return parse_api_response(response) if response.options[:response_code] == 200
88
- return parse_api_errors(response) if response.options[:response_code] == 201
89
- raise api_error_messages(response)
72
+ get("/version1/messaging?username=#{username}&lastReceivedId=#{last_received_id}")
90
73
  end
91
74
 
92
75
  end
@@ -1,3 +1,3 @@
1
1
  module AfricasTalking
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: africas_talking
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles Chuck
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-22 00:00:00.000000000 Z
11
+ date: 2015-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -208,3 +208,4 @@ test_files:
208
208
  - test/mocks/failed_status_report.json
209
209
  - test/mocks/success_status_report.json
210
210
  - test/test_africas_talking.rb
211
+ has_rdoc: