nileshtrivedi-gupshup 0.0.5 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README.rdoc +1 -0
  2. data/lib/gupshup.rb +38 -22
  3. metadata +1 -1
data/README.rdoc CHANGED
@@ -11,6 +11,7 @@ campaigns and so on.
11
11
 
12
12
  == FEATURES:
13
13
 
14
+ * V 0.1.0 send_vcard and send_unicode_message implemented. Error checking.
14
15
  * V 0.0.5 send_text_message and send_flash_message are implemented
15
16
  * V 0.0.1 send_message is implemented.
16
17
 
data/lib/gupshup.rb CHANGED
@@ -6,7 +6,7 @@ require 'uri'
6
6
  require 'cgi'
7
7
 
8
8
  module Gupshup
9
- VERSION = '0.0.1'
9
+ VERSION = '0.1.0'
10
10
  class Enterprise
11
11
  def initialize(login,password)
12
12
  @api_url = 'http://enterprise.smsgupshup.com/GatewayAPI/rest'
@@ -17,38 +17,54 @@ module Gupshup
17
17
  @api_params[:auth_scheme] = 'PLAIN'
18
18
  end
19
19
 
20
- def send_message(msg,number,msg_type = 'TEXT')
20
+ def send_message(msg,number,msg_type = 'TEXT',opts = {})
21
+ raise 'Phone Number is too short' if number.to_s.length < 12
22
+ raise 'Phone Number is too long' if number.to_s.length > 12
23
+ #raise 'Phone Number should start with "91"' if number.to_s.start_with? "91"
24
+ raise 'Phone Number should be numerical value' unless number.to_i.to_s == number.to_s
25
+ raise 'Message should be less than 725 characters long' if msg.to_s.length > 724
21
26
  msg_params = {}
22
27
  msg_params[:method] = 'sendMessage'
23
- msg_params[:msg_type] = msg_type
28
+ msg_params[:msg_type] = msg_type.to_s
24
29
  msg_params[:msg] = msg.to_s
25
- msg_params[:send_to] = CGI.escape(number.to_i.to_s)
26
- url = URI.parse(@api_url)
27
- req = Net::HTTP::Post.new(url.path)
28
- puts "--- #{msg_params.merge(@api_params).inspect}"
29
- req.set_form_data(msg_params.merge(@api_params))
30
- res = Net::HTTP.new(url.host, url.port).start {|http|http.request(req) }
31
- success = false
30
+ msg_params[:send_to] = number.to_s
31
+ #url = URI.parse(@api_url)
32
+ #req = Net::HTTP::Post.new(url.path)
33
+ #puts "--- #{msg_params.merge(@api_params).inspect}"
34
+ #req.set_form_data(msg_params.merge(@api_params))
35
+ #res = Net::HTTP.new(url.host, url.port).start {|http|http.request(req) }
36
+ res = Net::HTTP.post_form(
37
+ URI.parse(@api_url),
38
+ msg_params.merge(@api_params).merge(opts)
39
+ )
40
+ resp = res.body
41
+ puts "GupShup Response: #{resp}"
42
+
32
43
  case res
33
44
  when Net::HTTPSuccess, Net::HTTPRedirection
34
- resp = res.body
35
- success = true
45
+ if resp.nil? || resp.include?("success") == false
46
+ raise "SMS Sending failed: #{resp}"
47
+ end
48
+ return true
36
49
  else
37
- puts "---#{res.body}"
38
- end
39
- if resp.nil? || resp.include?("success") == false
40
- puts "############## SMS Sending failed - #{resp}"
41
- success = false
50
+ raise 'GupShup returned HTTP Error'
42
51
  end
43
- return success
44
52
  end
45
53
 
46
- def send_flash_message(msg,number)
47
- send_message(msg,number,'FLASH')
54
+ def send_flash_message(msg,number,opts = {})
55
+ send_message(msg,number,:FLASH,opts)
56
+ end
57
+
58
+ def send_text_message(msg,number,opts = {})
59
+ send_message(msg,number,:TEXT,opts)
60
+ end
61
+
62
+ def send_vcard(card,number,opts = {})
63
+ send_message(card,number,:VCARD,opts)
48
64
  end
49
65
 
50
- def send_text_message(msg,number)
51
- send_message(msg,number,'TEXT')
66
+ def send_unicode_message(msg,number,opts = {})
67
+ send_message(msg,number,:UNICODE_TEXT,opts)
52
68
  end
53
69
  end
54
70
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nileshtrivedi-gupshup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nilesh Trivedi