moceansdk 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,82 +1,82 @@
1
- module Moceansdk
2
- module Modules
3
- module Message
4
-
5
- class VerifyRequest < Moceansdk::Modules::AbstractClient
6
- attr_reader :channel, :is_resend
7
-
8
- def initialize(obj_auth, transmitter)
9
- super(obj_auth, transmitter)
10
- @required_fields = ['mocean-api-key', 'mocean-api-secret', 'mocean-to', 'mocean-brand']
11
- @channel = Channel::AUTO
12
- @is_resend = false
13
- end
14
-
15
- def to=(param)
16
- @params['mocean-to'] = param
17
- end
18
-
19
- def brand=(param)
20
- @params['mocean-brand'] = param
21
- end
22
-
23
- def from=(param)
24
- @params['mocean-from'] = param
25
- end
26
-
27
- def code_length=(param)
28
- @params['mocean-code-length'] = param
29
- end
30
-
31
- def template=(param)
32
- @params['mocean-template'] = param
33
- end
34
-
35
- def pin_validity=(param)
36
- @params['mocean-pin-validity'] = param
37
- end
38
-
39
- def next_event_wait=(param)
40
- @params['mocean-next-event-wait'] = param
41
- end
42
-
43
- def resp_format=(param)
44
- @params['mocean-resp-format'] = param
45
- end
46
-
47
- def send_as(channel)
48
- @channel = channel
49
- self
50
- end
51
-
52
- def send(params = {})
53
- create(params)
54
- create_final_params
55
- required_field_set?
56
-
57
- verify_request_url = '/verify'
58
- verify_request_url += if @is_resend
59
- '/resend'
60
- else
61
- '/req'
62
- end
63
-
64
- if @channel == Channel::SMS
65
- verify_request_url += '/sms'
66
- end
67
-
68
- @transmitter.post(verify_request_url, @params)
69
- end
70
-
71
- def resend(params = {})
72
- send_as Channel::SMS
73
- @is_resend = true
74
- @required_fields = ['mocean-api-key', 'mocean-api-secret', 'mocean-reqid']
75
-
76
- send(params)
77
- end
78
- end
79
-
80
- end
81
- end
1
+ module Moceansdk
2
+ module Modules
3
+ module Message
4
+
5
+ class VerifyRequest < Moceansdk::Modules::AbstractClient
6
+ attr_reader :channel, :is_resend
7
+
8
+ def initialize(obj_auth, transmitter)
9
+ super(obj_auth, transmitter)
10
+ @required_fields = ['mocean-api-key', 'mocean-api-secret', 'mocean-to', 'mocean-brand']
11
+ @channel = Channel::AUTO
12
+ @is_resend = false
13
+ end
14
+
15
+ def to=(param)
16
+ @params['mocean-to'] = param
17
+ end
18
+
19
+ def brand=(param)
20
+ @params['mocean-brand'] = param
21
+ end
22
+
23
+ def from=(param)
24
+ @params['mocean-from'] = param
25
+ end
26
+
27
+ def code_length=(param)
28
+ @params['mocean-code-length'] = param
29
+ end
30
+
31
+ def template=(param)
32
+ @params['mocean-template'] = param
33
+ end
34
+
35
+ def pin_validity=(param)
36
+ @params['mocean-pin-validity'] = param
37
+ end
38
+
39
+ def next_event_wait=(param)
40
+ @params['mocean-next-event-wait'] = param
41
+ end
42
+
43
+ def resp_format=(param)
44
+ @params['mocean-resp-format'] = param
45
+ end
46
+
47
+ def send_as(channel)
48
+ @channel = channel
49
+ self
50
+ end
51
+
52
+ def send(params = {})
53
+ create(params)
54
+ create_final_params
55
+ required_field_set?
56
+
57
+ verify_request_url = '/verify'
58
+ verify_request_url += if @is_resend
59
+ '/resend'
60
+ else
61
+ '/req'
62
+ end
63
+
64
+ if @channel == Channel::SMS
65
+ verify_request_url += '/sms'
66
+ end
67
+
68
+ @transmitter.post(verify_request_url, @params)
69
+ end
70
+
71
+ def resend(params = {})
72
+ send_as Channel::SMS
73
+ @is_resend = true
74
+ @required_fields = ['mocean-api-key', 'mocean-api-secret', 'mocean-reqid']
75
+
76
+ send(params)
77
+ end
78
+ end
79
+
80
+ end
81
+ end
82
82
  end
@@ -1,34 +1,34 @@
1
- module Moceansdk
2
- module Modules
3
- module Message
4
-
5
- class VerifyValidate < Moceansdk::Modules::AbstractClient
6
- def initialize(obj_auth, transmitter)
7
- super(obj_auth, transmitter)
8
- @required_fields = ['mocean-api-key', 'mocean-api-secret', 'mocean-reqid', 'mocean-code']
9
- end
10
-
11
- def reqid=(param)
12
- @params['mocean-reqid'] = param
13
- end
14
-
15
- def code=(param)
16
- @params['mocean-code'] = param
17
- end
18
-
19
- def resp_format=(param)
20
- @params['mocean-resp-format'] = param
21
- end
22
-
23
- def send(params = {})
24
- create(params)
25
- create_final_params
26
- required_field_set?
27
-
28
- @transmitter.post('/verify/check', @params)
29
- end
30
- end
31
-
32
- end
33
- end
1
+ module Moceansdk
2
+ module Modules
3
+ module Message
4
+
5
+ class VerifyValidate < Moceansdk::Modules::AbstractClient
6
+ def initialize(obj_auth, transmitter)
7
+ super(obj_auth, transmitter)
8
+ @required_fields = ['mocean-api-key', 'mocean-api-secret', 'mocean-reqid', 'mocean-code']
9
+ end
10
+
11
+ def reqid=(param)
12
+ @params['mocean-reqid'] = param
13
+ end
14
+
15
+ def code=(param)
16
+ @params['mocean-code'] = param
17
+ end
18
+
19
+ def resp_format=(param)
20
+ @params['mocean-resp-format'] = param
21
+ end
22
+
23
+ def send(params = {})
24
+ create(params)
25
+ create_final_params
26
+ required_field_set?
27
+
28
+ @transmitter.post('/verify/check', @params)
29
+ end
30
+ end
31
+
32
+ end
33
+ end
34
34
  end
@@ -1,34 +1,34 @@
1
- module Moceansdk
2
- module Modules
3
- module NumberLookup
4
-
5
- class NumberLookup < Moceansdk::Modules::AbstractClient
6
- def initialize(obj_auth, transmitter)
7
- super(obj_auth, transmitter)
8
- @required_fields = ['mocean-api-key', 'mocean-api-secret', 'mocean-to']
9
- end
10
-
11
- def to=(param)
12
- @params['mocean-to'] = param
13
- end
14
-
15
- def nl_url=(param)
16
- @params['mocean-nl-url'] = param
17
- end
18
-
19
- def resp_format=(param)
20
- @params['mocean-resp-format'] = param
21
- end
22
-
23
- def inquiry(params = {})
24
- create(params)
25
- create_final_params
26
- required_field_set?
27
-
28
- @transmitter.post('/nl', @params)
29
- end
30
- end
31
-
32
- end
33
- end
34
- end
1
+ module Moceansdk
2
+ module Modules
3
+ module NumberLookup
4
+
5
+ class NumberLookup < Moceansdk::Modules::AbstractClient
6
+ def initialize(obj_auth, transmitter)
7
+ super(obj_auth, transmitter)
8
+ @required_fields = ['mocean-api-key', 'mocean-api-secret', 'mocean-to']
9
+ end
10
+
11
+ def to=(param)
12
+ @params['mocean-to'] = param
13
+ end
14
+
15
+ def nl_url=(param)
16
+ @params['mocean-nl-url'] = param
17
+ end
18
+
19
+ def resp_format=(param)
20
+ @params['mocean-resp-format'] = param
21
+ end
22
+
23
+ def inquiry(params = {})
24
+ create(params)
25
+ create_final_params
26
+ required_field_set?
27
+
28
+ @transmitter.post('/nl', @params)
29
+ end
30
+ end
31
+
32
+ end
33
+ end
34
+ end
@@ -1,50 +1,50 @@
1
- module Moceansdk
2
- module Modules
3
-
4
- class ResponseFactory
5
- def self.create_object(raw_response)
6
- begin
7
- res = JSON.load(raw_response, proc {|obj|
8
- case obj
9
- when Hash
10
- obj.each {|k, v|
11
- obj[k] = if v.is_a? Float
12
- # hardcoded float to 4 decimal string
13
- sprintf('%.4f', v)
14
- elsif v.is_a? Integer
15
- v.to_s
16
- else
17
- v
18
- end
19
- }
20
- when Array
21
- obj.map! {|v| v}
22
- end
23
- })
24
- rescue JSON::JSONError
25
- begin
26
- res = XmlSimple.xml_in(raw_response, 'ForceArray': false)
27
- rescue StandardError
28
- raise Moceansdk::Exceptions::MoceanError, 'unable to parse response, ' + raw_response
29
- end
30
- end
31
-
32
- hashed_res = HashExtended.new.merge(res)
33
- hashed_res.to_dot
34
- end
35
- end
36
-
37
- class HashExtended < Hash
38
- attr_accessor :raw_response
39
-
40
- def to_s
41
- @raw_response
42
- end
43
-
44
- def to_hash
45
- inspect
46
- end
47
- end
48
-
49
- end
1
+ module Moceansdk
2
+ module Modules
3
+
4
+ class ResponseFactory
5
+ def self.create_object(raw_response)
6
+ begin
7
+ res = JSON.load(raw_response, proc {|obj|
8
+ case obj
9
+ when Hash
10
+ obj.each {|k, v|
11
+ obj[k] = if v.is_a? Float
12
+ # hardcoded float to 4 decimal string
13
+ sprintf('%.4f', v)
14
+ elsif v.is_a? Integer
15
+ v.to_s
16
+ else
17
+ v
18
+ end
19
+ }
20
+ when Array
21
+ obj.map! {|v| v}
22
+ end
23
+ })
24
+ rescue JSON::JSONError
25
+ begin
26
+ res = XmlSimple.xml_in(raw_response, 'ForceArray': false)
27
+ rescue StandardError
28
+ raise Moceansdk::Exceptions::MoceanError, 'unable to parse response, ' + raw_response
29
+ end
30
+ end
31
+
32
+ hashed_res = HashExtended.new.merge(res)
33
+ hashed_res.to_dot
34
+ end
35
+ end
36
+
37
+ class HashExtended < Hash
38
+ attr_accessor :raw_response
39
+
40
+ def to_s
41
+ @raw_response
42
+ end
43
+
44
+ def to_hash
45
+ inspect
46
+ end
47
+ end
48
+
49
+ end
50
50
  end
@@ -1,92 +1,92 @@
1
- module Moceansdk
2
- module Modules
3
-
4
- class Transmitter
5
- def initialize(options = nil)
6
- @options = default_options
7
-
8
- unless options.nil?
9
- @options = @options.merge(options)
10
- end
11
- end
12
-
13
- def default_options
14
- {
15
- base_url: 'https://rest.moceanapi.com',
16
- version: '2'
17
- }
18
- end
19
-
20
- def get(uri, params)
21
- request('get', uri, params)
22
- end
23
-
24
- def post(uri, params)
25
- request('post', uri, params)
26
- end
27
-
28
- def request(method, uri, params)
29
- params[:'mocean-medium'] = 'RUBY-SDK'
30
-
31
- # use json if default not set
32
- params[:'mocean-resp-format'] = 'json' unless params[:'mocean-resp-format']
33
-
34
- url = @options[:base_url] + '/rest/' + @options[:version] + uri
35
-
36
- res = if method.casecmp('get').zero?
37
- HTTP.get(url, params: params)
38
- else
39
- HTTP.post(url, form: params)
40
- end
41
-
42
- format_response(res.to_s, params[:'mocean-resp-format'] == 'xml', uri)
43
- end
44
-
45
- def format_response(response_text, is_xml = false, uri = nil)
46
- raw_response = response_text
47
-
48
- # format for v1
49
- if !uri.nil? && @options[:version] == '1' && is_xml
50
- if uri == '/account/pricing'
51
- response_text = response_text
52
- .sub('<data>', '<destinations>')
53
- .sub('</data>', '</destinations>')
54
- elsif uri == '/sms'
55
- response_text = response_text
56
- .sub('<result>', '<result><messages>')
57
- .sub('</result>', '</messages></result>')
58
- end
59
- end
60
-
61
- processed_response = ResponseFactory.create_object(
62
- response_text
63
- .sub('<verify_request>', '')
64
- .sub('</verify_request>', '')
65
- .sub('<verify_check>', '')
66
- .sub('</verify_check>', '')
67
- )
68
-
69
- if processed_response['status'] && processed_response['status'] != '0' && processed_response['status'] != 0
70
- processed_response.raw_response = raw_response
71
- raise Moceansdk::Exceptions::MoceanError.new(processed_response['err_msg'], processed_response)
72
- end
73
-
74
- # format for v1
75
- if !uri.nil? && is_xml
76
- if uri == '/account/pricing'
77
- processed_response.destinations = processed_response.destinations.destination
78
- elsif uri == '/sms'
79
- unless processed_response.messages.message.is_a? Array
80
- processed_response.messages.message = [processed_response.messages.message]
81
- end
82
- processed_response.messages = processed_response.messages.message
83
- end
84
- end
85
-
86
- processed_response.raw_response = raw_response
87
- processed_response
88
- end
89
- end
90
-
91
- end
1
+ module Moceansdk
2
+ module Modules
3
+
4
+ class Transmitter
5
+ def initialize(options = nil)
6
+ @options = default_options
7
+
8
+ unless options.nil?
9
+ @options = @options.merge(options)
10
+ end
11
+ end
12
+
13
+ def default_options
14
+ {
15
+ base_url: 'https://rest.moceanapi.com',
16
+ version: '2'
17
+ }
18
+ end
19
+
20
+ def get(uri, params)
21
+ request('get', uri, params)
22
+ end
23
+
24
+ def post(uri, params)
25
+ request('post', uri, params)
26
+ end
27
+
28
+ def request(method, uri, params)
29
+ params[:'mocean-medium'] = 'RUBY-SDK'
30
+
31
+ # use json if default not set
32
+ params[:'mocean-resp-format'] = 'json' unless params[:'mocean-resp-format']
33
+
34
+ url = @options[:base_url] + '/rest/' + @options[:version] + uri
35
+
36
+ res = if method.casecmp('get').zero?
37
+ HTTP.get(url, params: params)
38
+ else
39
+ HTTP.post(url, form: params)
40
+ end
41
+
42
+ format_response(res.to_s, params[:'mocean-resp-format'] == 'xml', uri)
43
+ end
44
+
45
+ def format_response(response_text, is_xml = false, uri = nil)
46
+ raw_response = response_text
47
+
48
+ # format for v1
49
+ if !uri.nil? && @options[:version] == '1' && is_xml
50
+ if uri == '/account/pricing'
51
+ response_text = response_text
52
+ .sub('<data>', '<destinations>')
53
+ .sub('</data>', '</destinations>')
54
+ elsif uri == '/sms'
55
+ response_text = response_text
56
+ .sub('<result>', '<result><messages>')
57
+ .sub('</result>', '</messages></result>')
58
+ end
59
+ end
60
+
61
+ processed_response = ResponseFactory.create_object(
62
+ response_text
63
+ .sub('<verify_request>', '')
64
+ .sub('</verify_request>', '')
65
+ .sub('<verify_check>', '')
66
+ .sub('</verify_check>', '')
67
+ )
68
+
69
+ if processed_response['status'] && processed_response['status'] != '0' && processed_response['status'] != 0
70
+ processed_response.raw_response = raw_response
71
+ raise Moceansdk::Exceptions::MoceanError.new(processed_response['err_msg'], processed_response)
72
+ end
73
+
74
+ # format for v1
75
+ if !uri.nil? && is_xml
76
+ if uri == '/account/pricing'
77
+ processed_response.destinations = processed_response.destinations.destination
78
+ elsif uri == '/sms'
79
+ unless processed_response.messages.message.is_a? Array
80
+ processed_response.messages.message = [processed_response.messages.message]
81
+ end
82
+ processed_response.messages = processed_response.messages.message
83
+ end
84
+ end
85
+
86
+ processed_response.raw_response = raw_response
87
+ processed_response
88
+ end
89
+ end
90
+
91
+ end
92
92
  end