moceansdk 0.1.6 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/LICENSE.txt +1 -1
- data/README.md +75 -57
- data/lib/moceansdk.rb +51 -5
- data/lib/moceansdk/auth/abstract_auth.rb +15 -0
- data/lib/moceansdk/auth/basic.rb +29 -0
- data/lib/moceansdk/client.rb +70 -14
- data/lib/moceansdk/exceptions/mocean_error.rb +18 -0
- data/lib/moceansdk/exceptions/required_field_exception.rb +8 -0
- data/lib/moceansdk/modules/abstact_client.rb +54 -0
- data/lib/moceansdk/modules/account/balance.rb +26 -22
- data/lib/moceansdk/modules/account/pricing.rb +37 -37
- data/lib/moceansdk/modules/command/command.rb +47 -0
- data/lib/moceansdk/modules/command/mc.rb +40 -0
- data/lib/moceansdk/modules/command/mc_builder.rb +30 -0
- data/lib/moceansdk/modules/command/mc_object/abstract_mc.rb +36 -0
- data/lib/moceansdk/modules/command/mc_object/send_sms.rb +41 -0
- data/lib/moceansdk/modules/command/mc_object/tg_request_contact.rb +49 -0
- data/lib/moceansdk/modules/command/mc_object/tg_send_animation.rb +41 -0
- data/lib/moceansdk/modules/command/mc_object/tg_send_audio.rb +41 -0
- data/lib/moceansdk/modules/command/mc_object/tg_send_document.rb +41 -0
- data/lib/moceansdk/modules/command/mc_object/tg_send_photo.rb +41 -0
- data/lib/moceansdk/modules/command/mc_object/tg_send_text.rb +41 -0
- data/lib/moceansdk/modules/command/mc_object/tg_send_video.rb +41 -0
- data/lib/moceansdk/modules/message/channel.rb +13 -0
- data/lib/moceansdk/modules/message/message_status.rb +29 -24
- data/lib/moceansdk/modules/message/sms.rb +74 -96
- data/lib/moceansdk/modules/message/verify_request.rb +83 -58
- data/lib/moceansdk/modules/message/verify_validate.rb +33 -37
- data/lib/moceansdk/modules/number_lookup/number_lookup.rb +34 -0
- data/lib/moceansdk/modules/response_factory.rb +50 -0
- data/lib/moceansdk/modules/transmitter.rb +112 -0
- data/lib/moceansdk/modules/voice/mc.rb +63 -0
- data/lib/moceansdk/modules/voice/mc_builder.rb +30 -0
- data/lib/moceansdk/modules/voice/mc_object/abstract_mc.rb +38 -0
- data/lib/moceansdk/modules/voice/mc_object/collect.rb +39 -0
- data/lib/moceansdk/modules/voice/mc_object/dial.rb +31 -0
- data/lib/moceansdk/modules/voice/mc_object/play.rb +31 -0
- data/lib/moceansdk/modules/voice/mc_object/record.rb +19 -0
- data/lib/moceansdk/modules/voice/mc_object/say.rb +43 -0
- data/lib/moceansdk/modules/voice/mc_object/sleep.rb +23 -0
- data/lib/moceansdk/modules/voice/voice.rb +84 -0
- data/lib/moceansdk/utils.rb +15 -0
- data/lib/moceansdk/version.rb +1 -1
- data/moceansdk.gemspec +13 -6
- metadata +97 -19
- data/lib/moceansdk/init.rb +0 -4
- data/lib/moceansdk/mocean.rb +0 -52
- data/lib/moceansdk/modules/abstract.rb +0 -142
@@ -1,38 +1,38 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
1
|
+
module Moceansdk
|
2
|
+
module Modules
|
3
|
+
module Account
|
4
|
+
|
5
|
+
class Pricing < Moceansdk::Modules::AbstractClient
|
6
|
+
def initialize(obj_auth, transmitter)
|
7
|
+
super(obj_auth, transmitter)
|
8
|
+
@required_fields = ['mocean-api-key', 'mocean-api-secret']
|
9
|
+
end
|
10
|
+
|
11
|
+
def mcc=(param)
|
12
|
+
@params['mocean-mcc'] = param
|
13
|
+
end
|
14
|
+
|
15
|
+
def mnc=(param)
|
16
|
+
@params['mocean-mnc'] = param
|
17
|
+
end
|
18
|
+
|
19
|
+
def delimiter=(param)
|
20
|
+
@params['mocean-delimiter'] = param
|
21
|
+
end
|
22
|
+
|
23
|
+
def resp_format=(param)
|
24
|
+
@params['mocean-resp-format'] = param
|
25
|
+
end
|
26
|
+
|
27
|
+
def inquiry(params = {})
|
28
|
+
create(params)
|
29
|
+
create_final_params
|
30
|
+
required_field_set?
|
31
|
+
|
32
|
+
@transmitter.get('/account/pricing', @params)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
38
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Moceansdk
|
2
|
+
module Modules
|
3
|
+
module Command
|
4
|
+
|
5
|
+
class Command < Moceansdk::Modules::AbstractClient
|
6
|
+
def initialize(obj_auth, transmitter)
|
7
|
+
super(obj_auth, transmitter)
|
8
|
+
@required_fields = ['mocean-api-key', 'mocean-api-secret','mocean-command']
|
9
|
+
end
|
10
|
+
|
11
|
+
def event_url=(param)
|
12
|
+
@params['mocean-event-url'] = param
|
13
|
+
end
|
14
|
+
|
15
|
+
def mocean_command=(param)
|
16
|
+
if param.is_a? McBuilder
|
17
|
+
@params['mocean-command'] = JSON.generate(param.build)
|
18
|
+
elsif param.is_a? McObject::AbstractMc
|
19
|
+
@params['mocean-command'] = JSON.generate([param.get_request_data])
|
20
|
+
elsif param.is_a? Array
|
21
|
+
@params['mocean-command'] = JSON.generate(param)
|
22
|
+
else
|
23
|
+
@params['mocean-command'] = param
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
def execute(params = {})
|
29
|
+
sym_params = Moceansdk::Utils.convert_to_symbol_hash(params)
|
30
|
+
|
31
|
+
unless sym_params[:'mocean-command'].nil?
|
32
|
+
mc = sym_params[:'mocean-command']
|
33
|
+
sym_params.delete(:'mocean-command')
|
34
|
+
self.mocean_command = mc
|
35
|
+
end
|
36
|
+
|
37
|
+
create(sym_params)
|
38
|
+
create_final_params
|
39
|
+
required_field_set?
|
40
|
+
|
41
|
+
# @sym_params[:'mocean-command'] = JSON.generate(@sym_params[:'mocean-command'].build)
|
42
|
+
@transmitter.post('/send-message', @params)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Moceansdk
|
2
|
+
module Modules
|
3
|
+
module Command
|
4
|
+
|
5
|
+
class Mc
|
6
|
+
def self.tg_send_text()
|
7
|
+
McObject::TgSendText.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.tg_send_audio()
|
11
|
+
McObject::TgSendAudio.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.tg_send_animation()
|
15
|
+
McObject::TgSendAnimation.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.tg_send_document()
|
19
|
+
McObject::TgSendDocument.new
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.tg_send_photo()
|
23
|
+
McObject::TgSendPhoto.new
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.tg_send_video()
|
27
|
+
McObject::TgSendVideo.new
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.tg_request_contact()
|
31
|
+
McObject::TgRequestContact.new
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.send_sms()
|
35
|
+
McObject::SendSMS.new
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Moceansdk
|
2
|
+
module Modules
|
3
|
+
module Command
|
4
|
+
|
5
|
+
class McBuilder
|
6
|
+
def initialize
|
7
|
+
@mc = []
|
8
|
+
end
|
9
|
+
|
10
|
+
def add(mc)
|
11
|
+
unless mc.is_a? McObject::AbstractMc
|
12
|
+
raise Moceansdk::Exceptions::MoceanError, 'mc_object must extend AbstractMc'
|
13
|
+
end
|
14
|
+
|
15
|
+
@mc.push(mc)
|
16
|
+
self
|
17
|
+
end
|
18
|
+
|
19
|
+
def build
|
20
|
+
converted = []
|
21
|
+
@mc.each do |mc|
|
22
|
+
converted.push(mc.get_request_data)
|
23
|
+
end
|
24
|
+
converted
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Moceansdk
|
2
|
+
module Modules
|
3
|
+
module Command
|
4
|
+
module McObject
|
5
|
+
|
6
|
+
class AbstractMc
|
7
|
+
def initialize(params = nil)
|
8
|
+
@params = {}
|
9
|
+
@params = Moceansdk::Utils.convert_to_symbol_hash(params) unless params.nil?
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_request_data
|
13
|
+
@params = Moceansdk::Utils.convert_to_symbol_hash(@params)
|
14
|
+
required_key.each do |key|
|
15
|
+
if @params[:"#{key}"].nil?
|
16
|
+
raise Moceansdk::Exceptions::RequiredFieldException, "#{key} is mandatory field, can't leave empty (#{self})"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
@params[:action] = action
|
20
|
+
@params
|
21
|
+
end
|
22
|
+
|
23
|
+
def required_key
|
24
|
+
raise NotImplementedError, 'AbstractMc is a abstract class'
|
25
|
+
end
|
26
|
+
|
27
|
+
def action
|
28
|
+
raise NotImplementedError, 'AbstractMc is a abstract class'
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Moceansdk
|
2
|
+
module Modules
|
3
|
+
module Command
|
4
|
+
module McObject
|
5
|
+
|
6
|
+
class SendSMS < AbstractMc
|
7
|
+
def action
|
8
|
+
'send-sms'
|
9
|
+
end
|
10
|
+
|
11
|
+
def required_key
|
12
|
+
['from','to','content']
|
13
|
+
end
|
14
|
+
|
15
|
+
def from(from, contact_type = 'phone_num')
|
16
|
+
@params[:'from'] = {}
|
17
|
+
@params[:'from'][:'id'] = from
|
18
|
+
@params[:'from'][:'type'] = contact_type
|
19
|
+
return self
|
20
|
+
end
|
21
|
+
|
22
|
+
def to(to, contact_type = "phone_num")
|
23
|
+
@params[:'to'] = {}
|
24
|
+
@params[:'to'][:'id'] = to
|
25
|
+
@params[:'to'][:'type'] = contact_type
|
26
|
+
return self
|
27
|
+
end
|
28
|
+
|
29
|
+
def content(text)
|
30
|
+
@params[:'content'] = {}
|
31
|
+
@params[:'content'][:'text'] = text
|
32
|
+
@params[:'content'][:'type'] = 'text'
|
33
|
+
return self
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Moceansdk
|
2
|
+
module Modules
|
3
|
+
module Command
|
4
|
+
module McObject
|
5
|
+
|
6
|
+
class TgRequestContact < AbstractMc
|
7
|
+
def action
|
8
|
+
'send-telegram'
|
9
|
+
end
|
10
|
+
|
11
|
+
def required_key
|
12
|
+
['from', 'to', 'content', 'tg_keyboard']
|
13
|
+
end
|
14
|
+
|
15
|
+
def from(from, contact_type = 'bot_username')
|
16
|
+
@params[:'from'] = {}
|
17
|
+
@params[:'from'][:'id'] = from
|
18
|
+
@params[:'from'][:'type'] = contact_type
|
19
|
+
return self
|
20
|
+
end
|
21
|
+
|
22
|
+
def to(to, contact_type = "chat_id")
|
23
|
+
@params[:'to'] = {}
|
24
|
+
@params[:'to'][:'id'] = to
|
25
|
+
@params[:'to'][:'type'] = contact_type
|
26
|
+
return self
|
27
|
+
end
|
28
|
+
|
29
|
+
def content(text)
|
30
|
+
@params[:'content'] = {}
|
31
|
+
@params[:'content'][:'text'] = text
|
32
|
+
@params[:'content'][:'type'] = 'text'
|
33
|
+
return self
|
34
|
+
end
|
35
|
+
|
36
|
+
def button(text)
|
37
|
+
@params[:'tg_keyboard'] = {
|
38
|
+
:'button_text' => text,
|
39
|
+
:'button_request' => 'contact'
|
40
|
+
}
|
41
|
+
return self
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Moceansdk
|
2
|
+
module Modules
|
3
|
+
module Command
|
4
|
+
module McObject
|
5
|
+
|
6
|
+
class TgSendAnimation < AbstractMc
|
7
|
+
def action
|
8
|
+
'send-telegram'
|
9
|
+
end
|
10
|
+
|
11
|
+
def required_key
|
12
|
+
['from','to','content']
|
13
|
+
end
|
14
|
+
|
15
|
+
def from(from, contact_type = 'bot_username')
|
16
|
+
@params[:'from'] = {}
|
17
|
+
@params[:'from'][:'id'] = from
|
18
|
+
@params[:'from'][:'type'] = contact_type
|
19
|
+
return self
|
20
|
+
end
|
21
|
+
|
22
|
+
def to(to, contact_type = "chat_id")
|
23
|
+
@params[:'to'] = {}
|
24
|
+
@params[:'to'][:'id'] = to
|
25
|
+
@params[:'to'][:'type'] = contact_type
|
26
|
+
return self
|
27
|
+
end
|
28
|
+
|
29
|
+
def content(url,text)
|
30
|
+
@params[:'content'] = {}
|
31
|
+
@params[:'content'][:'rich_media_url'] = url
|
32
|
+
@params[:'content'][:'text'] = text
|
33
|
+
@params[:'content'][:'type'] = 'animation'
|
34
|
+
return self
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Moceansdk
|
2
|
+
module Modules
|
3
|
+
module Command
|
4
|
+
module McObject
|
5
|
+
|
6
|
+
class TgSendAudio < AbstractMc
|
7
|
+
def action
|
8
|
+
'send-telegram'
|
9
|
+
end
|
10
|
+
|
11
|
+
def required_key
|
12
|
+
['from','to','content']
|
13
|
+
end
|
14
|
+
|
15
|
+
def from(from, contact_type = 'bot_username')
|
16
|
+
@params[:'from'] = {}
|
17
|
+
@params[:'from'][:'id'] = from
|
18
|
+
@params[:'from'][:'type'] = contact_type
|
19
|
+
return self
|
20
|
+
end
|
21
|
+
|
22
|
+
def to(to, contact_type = "chat_id")
|
23
|
+
@params[:'to'] = {}
|
24
|
+
@params[:'to'][:'id'] = to
|
25
|
+
@params[:'to'][:'type'] = contact_type
|
26
|
+
return self
|
27
|
+
end
|
28
|
+
|
29
|
+
def content(url, text)
|
30
|
+
@params[:'content'] = {}
|
31
|
+
@params[:'content'][:'rich_media_url'] = url
|
32
|
+
@params[:'content'][:'text'] = text
|
33
|
+
@params[:'content'][:'type'] = 'audio'
|
34
|
+
return self
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Moceansdk
|
2
|
+
module Modules
|
3
|
+
module Command
|
4
|
+
module McObject
|
5
|
+
|
6
|
+
class TgSendDocument < AbstractMc
|
7
|
+
def action
|
8
|
+
'send-telegram'
|
9
|
+
end
|
10
|
+
|
11
|
+
def required_key
|
12
|
+
['from','to','content']
|
13
|
+
end
|
14
|
+
|
15
|
+
def from(from, contact_type = 'bot_username')
|
16
|
+
@params[:'from'] = {}
|
17
|
+
@params[:'from'][:'id'] = from
|
18
|
+
@params[:'from'][:'type'] = contact_type
|
19
|
+
return self
|
20
|
+
end
|
21
|
+
|
22
|
+
def to(to, contact_type = "chat_id")
|
23
|
+
@params[:'to'] = {}
|
24
|
+
@params[:'to'][:'id'] = to
|
25
|
+
@params[:'to'][:'type'] = contact_type
|
26
|
+
return self
|
27
|
+
end
|
28
|
+
|
29
|
+
def content(url,text)
|
30
|
+
@params[:'content'] = {}
|
31
|
+
@params[:'content'][:'rich_media_url'] = url
|
32
|
+
@params[:'content'][:'text'] = text
|
33
|
+
@params[:'content'][:'type'] = 'document'
|
34
|
+
return self
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|