coolsms 0.0.2 → 0.0.3

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: e5fc2a139f5819011b1b2ff41f1bfb5f76846560
4
- data.tar.gz: d041e7a4173128eb902306bfc443ddfd6eb915cc
3
+ metadata.gz: 9bb3a232a35a1ee89255976d1959a97a2b2f2d34
4
+ data.tar.gz: fdfba1088988faa59bcd231808636d584945e536
5
5
  SHA512:
6
- metadata.gz: d45a57e007365db13aeec583fcbf14db16c0479aa168056102167b5c339ab11d54fce2c7985c77e0a18bd1af6f9b392b1e052dae1f42ae839c45c4144a46994c
7
- data.tar.gz: f58a0030f7adbc14f8d9f779b1504e10877e7c2e62acaec539e19b0c5beb1ab3c4c76d512d76358b5f69a4fd64a28ed1db8545fc7fe5a83f5e3936604e300e71
6
+ metadata.gz: 32a5480a41363d0b739bb604c2f247c36ee2707da252116930979f98a88095f518cf6d1c570ae3d1805edac912b6d0c25ef7d55c89e2f1f4828a38d91fa9c671
7
+ data.tar.gz: 8e1e30f9384434b2f2379c4fdf2e9db9c9988e5bf945b78a29080ce99eeacb2c7ee6622743b645be35f57bbeb4101b5a26ea83128bad056fcb5e0d50bc74e8ee
data/coolsms.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["JunSangPil"]
10
10
  spec.email = ["jun85664396@gmail.com"]
11
11
  spec.summary = %q{coolsms Rest API helper}
12
- spec.description = %q{The coolsms ruby module not supporting. so I have made ruby module.}
12
+ spec.description = %q{coolsms Rest API helper, made by customer}
13
13
  spec.homepage = "http://github.com/jun85664396"
14
14
  spec.license = "MIT"
15
15
 
data/lib/coolsms.rb CHANGED
@@ -2,71 +2,12 @@ require "coolsms/version"
2
2
  require 'securerandom'
3
3
  require 'net/http'
4
4
  require 'json'
5
+ require_relative 'coolsms/send'
5
6
 
6
7
  module Coolsms
7
8
  class SMS
8
9
 
9
- protected
10
- #URI
11
- attr_accessor :uri
12
-
13
- #API KEY
14
- attr_accessor :api_key
15
-
16
- #API SECRET KEY
17
- attr_accessor :api_secret
18
-
19
- #SMS Type default : SMS
20
- attr_accessor :type
21
-
22
- #Salt
23
- attr_accessor :salt
24
-
25
- #Time Default : now
26
- attr_accessor :timestamp
27
-
28
- #Salt
29
- attr_accessor :salt
30
-
31
- #Charset
32
- attr_accessor :charset
33
-
34
- #Datetime Format YYYYMMDDHHMISS
35
- attr_accessor :datetime
36
-
37
- #Delay
38
- attr_accessor :delay
39
-
40
- def initialize(api_key, api_secret, options = {})
41
- self.uri = URI("https://api.coolsms.co.kr/")
42
- self.api_key ||= api_key
43
- self.api_secret ||= api_secret
44
- self.type ||= options[:type]
45
- self.charset ||= options[:charset]
46
- self.datetime ||= options[:datetime]
47
- self.delay ||= options[:delay]
48
- end
49
-
50
- def signature
51
- self.timestamp = Time.now.to_i
52
- self.salt = SecureRandom.hex
53
- hmac_data = self.timestamp.to_s + self.salt.to_s
54
- OpenSSL::HMAC.hexdigest("md5", self.api_secret, hmac_data)
55
- end
56
-
57
- public
58
- def send(from, to, text)
59
- signature = self.signature
60
- fields = {api_key: self.api_key, timestamp: self.timestamp, salt: self.salt, signature: signature, from: from, to: to, text: text, type: self.type, charset: self.charset, datetime: self.datetime, delay: self.delay}
61
- res = Net::HTTP.post_form(self.uri+"/1/send", fields)
62
- if res.code == "200"
63
- body = JSON.parse(res.body)
64
- return {ret: true, message: body['result_message'], code: res.code} if body['result_code'] == "00"
65
- return {ret: false, message: body['result_message'], code: res.code}
66
- else
67
- return {ret: false, code: res.code}
68
- end
69
- end
70
-
10
+ Send = Class.new(Send)
11
+
71
12
  end
72
13
  end
@@ -0,0 +1,29 @@
1
+ class Auth
2
+
3
+ #Time Default : now
4
+ attr_accessor :timestamp
5
+
6
+ #Salt
7
+ attr_accessor :salt
8
+
9
+ #API KEY
10
+ attr_accessor :api_key
11
+
12
+ #API SECRET KEY
13
+ attr_accessor :api_secret
14
+
15
+ def initialize
16
+ self.api_key ||= ENV['COOLSMS_KEY']
17
+ self.api_secret ||= ENV['COOLSMS_SECRET_KEY']
18
+
19
+ end
20
+
21
+ def signature
22
+ self.timestamp = Time.now.to_i
23
+ self.salt = SecureRandom.hex
24
+ hmac_data = self.timestamp.to_s + self.salt.to_s
25
+ OpenSSL::HMAC.hexdigest( "md5", self.api_secret, hmac_data )
26
+ end
27
+
28
+
29
+ end
@@ -0,0 +1,76 @@
1
+ require_relative "auth"
2
+ class Send
3
+ #URI
4
+ attr_accessor :uri
5
+
6
+ #SMS Type default : SMS
7
+ attr_accessor :type
8
+
9
+ #Salt
10
+ attr_accessor :salt
11
+
12
+ #Charset
13
+ attr_accessor :charset
14
+
15
+ #Datetime Format YYYYMMDDHHMISS
16
+ attr_accessor :datetime
17
+
18
+ #Delay
19
+ attr_accessor :delay
20
+
21
+ #Refname
22
+ attr_accessor :refname
23
+
24
+ #Country Korea => 82, Japan => 81, China => 86, USA => 1
25
+ attr_accessor :country
26
+
27
+ #Subject
28
+ attr_accessor :subject
29
+
30
+ #Srk
31
+ attr_accessor :srk
32
+
33
+ #Mode
34
+ attr_accessor :mode
35
+
36
+ #Extension
37
+ attr_accessor :extension
38
+
39
+ #Force_sms
40
+ attr_accessor :force_sms
41
+
42
+ protected
43
+
44
+ def initialize(options = {})
45
+ self.uri = URI("https://api.coolsms.co.kr/")
46
+ options.each do |key, value|
47
+ self.public_send( "#{key}=", value ) if self.class.instance_methods.include? key
48
+ end
49
+ end
50
+
51
+ public
52
+
53
+ def send (from, to, text)
54
+ fields = self.fields( :type, :charset, :datetime, :delay )
55
+ fields = fields.merge(from: from, to: to, text: text, type: self.type )
56
+ res = Net::HTTP.post_form(self.uri+"/1/send", fields)
57
+ if res.code == "200"
58
+ body = JSON.parse(res.body)
59
+ { ret: body['result_code'] == "00", message: body['result_message'], code: res.code }
60
+ else
61
+ { ret: false, code: res.code }
62
+ end
63
+ end
64
+
65
+ def fields(*keys)
66
+ auth = Auth.new
67
+ field = { api_key: auth.api_key, signature: auth.signature, timestamp: auth.timestamp, salt: auth.salt}
68
+ keys.each do |key|
69
+ if self.class.instance_methods.include? key
70
+ field[key] = self.public_send(key)
71
+ end
72
+ end
73
+ return field
74
+ end
75
+
76
+ end
@@ -1,3 +1,3 @@
1
1
  module Coolsms
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coolsms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - JunSangPil
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-02 00:00:00.000000000 Z
11
+ date: 2015-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,7 +38,7 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
- description: The coolsms ruby module not supporting. so I have made ruby module.
41
+ description: coolsms Rest API helper, made by customer
42
42
  email:
43
43
  - jun85664396@gmail.com
44
44
  executables: []
@@ -50,9 +50,10 @@ files:
50
50
  - LICENSE.txt
51
51
  - README.md
52
52
  - Rakefile
53
- - coolsms-0.0.1.gem
54
53
  - coolsms.gemspec
55
54
  - lib/coolsms.rb
55
+ - lib/coolsms/auth.rb
56
+ - lib/coolsms/send.rb
56
57
  - lib/coolsms/version.rb
57
58
  homepage: http://github.com/jun85664396
58
59
  licenses:
data/coolsms-0.0.1.gem DELETED
Binary file