moceansdk 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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