kotsms 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kotsms.rb +26 -12
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 546763c5d66cb216b1150137bd5d05a7472bc0f6
4
- data.tar.gz: 6442fd12d3d01e1ecda3dd2545c6324ad1de0e6f
3
+ metadata.gz: c5a72facf91e03092bff1cce0699d629717322d4
4
+ data.tar.gz: a3140f1fa8f454d31b808b917f4fc658c0b28d8b
5
5
  SHA512:
6
- metadata.gz: af5df8c684f8f83898f1d256c7b47019286d7eb66d01d7856909c29978897b228923ff19556c5dfb39130da2963f80de65c7d4879f99928c46a1fe2960f542ab
7
- data.tar.gz: 28ebb5d7927957477be4878e4dae2c22938bd88c450e6f046a1adeba241603299b2c06c1a6f9a8af258b20693f9b798dc881eff1343cdf1a8630870895a79394
6
+ metadata.gz: 0e65bb044376825c6b14f62c5b9875eea8fa6001c37870a2992cec5de9bfd5a32d8231a3999da53566706e73cd16c03809b831d6d20e1c6177886cc5fbbfc4aa
7
+ data.tar.gz: '094f6680506e44d5a65a2bd469b0564a9d18ff364e4b929866728803b82a331ada4641377888ad527f54001b9d130a3ce9a2d5e767a4d4d5c9a68fbe1f19e862'
@@ -3,10 +3,11 @@ require "uri"
3
3
  require "iconv"
4
4
 
5
5
  class Kotsms
6
- SMS_ENDPOINT = "https://api.kotsms.com.tw/kotsmsapi-1.php"
7
- BULK_SMS_ENDPOINT = "https://api.kotsms.com.tw/kotsmsapi-2.php"
8
- BALANCE_ENDPOOINT = "http://mail2sms.com.tw/memberpoint.php"
9
- STATUS_ENDPOOINT = "http://mail2sms.com.tw/msgstatus.php"
6
+ API_HOST = "api.kotsms.com.tw"
7
+ SMS_ENDPOINT = "/kotsmsapi-1.php"
8
+ BULK_SMS_ENDPOINT = "/kotsmsapi-2.php"
9
+ BALANCE_ENDPOOINT = "/memberpoint.php"
10
+ STATUS_ENDPOOINT = "/msgstatus.php"
10
11
 
11
12
  def initialize(username, password)
12
13
  login(username, password)
@@ -18,8 +19,18 @@ class Kotsms
18
19
  true
19
20
  end
20
21
 
21
- def deliver(dst, content, options={})
22
- endpoint = case (options[:mode].to_sym rescue nil)
22
+ # recipient (string) - sms recipient in general format; e.g. '+886912345678'
23
+ # message (string) - message content
24
+ # options (hash) - optional config
25
+ # options.ignore_cert (boolean) - Ignore SSL certificate or not
26
+ # options.insecure (boolean) - Use plain HTTP or HTTPS
27
+ # options.mode (string) - delivery mode
28
+ # 'bit' - instant delivery (default)
29
+ # 'bulk' - bulk delivery
30
+ def deliver(recipient, message, options={})
31
+ protocol = options[:insecure] ? "http" : "https"
32
+ uri = URI.parse "#{protocol}://#{API_HOST}"
33
+ uri.path = case (options[:mode].to_sym rescue nil)
23
34
  when nil, :bit
24
35
  SMS_ENDPOINT
25
36
  when :bulk
@@ -27,25 +38,28 @@ class Kotsms
27
38
  else
28
39
  raise StandardError.new "Bad delivering mode!"
29
40
  end
30
- uri = URI.parse(endpoint)
31
41
 
32
42
  uri.query = URI.encode_www_form({
33
43
  username: @username,
34
44
  password: @password,
35
- dstaddr: dst,
36
- smbody: Iconv.new("big5", "utf-8").iconv(content),
45
+ dstaddr: recipient,
46
+ smbody: Iconv.new("big5", "utf-8").iconv(message),
37
47
  dlvtime: (options[:dlvtime] rescue 0),
38
48
  vldtime: (options[:vldtime] rescue nil),
39
49
  response: (options[:response] rescue nil)
40
50
  })
41
51
 
42
- response = Net::HTTP.get_response(uri)
52
+ response = Net::HTTP.start(uri.host, use_ssl: uri.scheme == 'https') do |http|
53
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE if options[:ignore_cert]
54
+ req = Net::HTTP::Get.new uri
55
+ http.request(req)
56
+ end
43
57
 
44
58
  parse_response(response.body)["kmsgid"].to_i
45
59
  end
46
60
 
47
- def deliver_bulk(dst, content, options={})
48
- deliver(dst, content, options.merge(mode: :bulk))
61
+ def deliver_bulk(recipient, message, options={})
62
+ deliver(recipient, message, options.merge(mode: :bulk))
49
63
  end
50
64
 
51
65
  def balance
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kotsms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - CrBoy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-07 00:00:00.000000000 Z
11
+ date: 2018-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: iconv
@@ -51,7 +51,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
51
51
  version: '0'
52
52
  requirements: []
53
53
  rubyforge_project:
54
- rubygems_version: 2.4.5.1
54
+ rubygems_version: 2.6.11
55
55
  signing_key:
56
56
  specification_version: 4
57
57
  summary: API wrapper for SMS King (www.kotsms.com.tw)