moceansdk 0.1.6 → 1.1.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.
Files changed (49) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE.txt +1 -1
  3. data/README.md +75 -57
  4. data/lib/moceansdk.rb +51 -5
  5. data/lib/moceansdk/auth/abstract_auth.rb +15 -0
  6. data/lib/moceansdk/auth/basic.rb +29 -0
  7. data/lib/moceansdk/client.rb +70 -14
  8. data/lib/moceansdk/exceptions/mocean_error.rb +18 -0
  9. data/lib/moceansdk/exceptions/required_field_exception.rb +8 -0
  10. data/lib/moceansdk/modules/abstact_client.rb +54 -0
  11. data/lib/moceansdk/modules/account/balance.rb +26 -22
  12. data/lib/moceansdk/modules/account/pricing.rb +37 -37
  13. data/lib/moceansdk/modules/command/command.rb +47 -0
  14. data/lib/moceansdk/modules/command/mc.rb +40 -0
  15. data/lib/moceansdk/modules/command/mc_builder.rb +30 -0
  16. data/lib/moceansdk/modules/command/mc_object/abstract_mc.rb +36 -0
  17. data/lib/moceansdk/modules/command/mc_object/send_sms.rb +41 -0
  18. data/lib/moceansdk/modules/command/mc_object/tg_request_contact.rb +49 -0
  19. data/lib/moceansdk/modules/command/mc_object/tg_send_animation.rb +41 -0
  20. data/lib/moceansdk/modules/command/mc_object/tg_send_audio.rb +41 -0
  21. data/lib/moceansdk/modules/command/mc_object/tg_send_document.rb +41 -0
  22. data/lib/moceansdk/modules/command/mc_object/tg_send_photo.rb +41 -0
  23. data/lib/moceansdk/modules/command/mc_object/tg_send_text.rb +41 -0
  24. data/lib/moceansdk/modules/command/mc_object/tg_send_video.rb +41 -0
  25. data/lib/moceansdk/modules/message/channel.rb +13 -0
  26. data/lib/moceansdk/modules/message/message_status.rb +29 -24
  27. data/lib/moceansdk/modules/message/sms.rb +74 -96
  28. data/lib/moceansdk/modules/message/verify_request.rb +83 -58
  29. data/lib/moceansdk/modules/message/verify_validate.rb +33 -37
  30. data/lib/moceansdk/modules/number_lookup/number_lookup.rb +34 -0
  31. data/lib/moceansdk/modules/response_factory.rb +50 -0
  32. data/lib/moceansdk/modules/transmitter.rb +112 -0
  33. data/lib/moceansdk/modules/voice/mc.rb +63 -0
  34. data/lib/moceansdk/modules/voice/mc_builder.rb +30 -0
  35. data/lib/moceansdk/modules/voice/mc_object/abstract_mc.rb +38 -0
  36. data/lib/moceansdk/modules/voice/mc_object/collect.rb +39 -0
  37. data/lib/moceansdk/modules/voice/mc_object/dial.rb +31 -0
  38. data/lib/moceansdk/modules/voice/mc_object/play.rb +31 -0
  39. data/lib/moceansdk/modules/voice/mc_object/record.rb +19 -0
  40. data/lib/moceansdk/modules/voice/mc_object/say.rb +43 -0
  41. data/lib/moceansdk/modules/voice/mc_object/sleep.rb +23 -0
  42. data/lib/moceansdk/modules/voice/voice.rb +84 -0
  43. data/lib/moceansdk/utils.rb +15 -0
  44. data/lib/moceansdk/version.rb +1 -1
  45. data/moceansdk.gemspec +13 -6
  46. metadata +97 -19
  47. data/lib/moceansdk/init.rb +0 -4
  48. data/lib/moceansdk/mocean.rb +0 -52
  49. data/lib/moceansdk/modules/abstract.rb +0 -142
@@ -0,0 +1,41 @@
1
+ module Moceansdk
2
+ module Modules
3
+ module Command
4
+ module McObject
5
+
6
+ class TgSendPhoto < 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'] = 'photo'
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 TgSendText < 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(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,41 @@
1
+ module Moceansdk
2
+ module Modules
3
+ module Command
4
+ module McObject
5
+
6
+ class TgSendVideo < 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'] = 'video'
34
+ return self
35
+ end
36
+ end
37
+
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,13 @@
1
+ module Moceansdk
2
+ module Modules
3
+ module Message
4
+
5
+ class Channel
6
+ AUTO = 1
7
+ SMS = 2
8
+ TELEGRAM = 3
9
+ end
10
+
11
+ end
12
+ end
13
+ end
@@ -1,25 +1,30 @@
1
- require_relative "../abstract"
2
-
3
- class Message_status < MoceanFactory
4
- def initialize client
5
- super(client)
6
- @required_fields = ['mocean-api-key','mocean-api-secret','mocean-msgid']
7
- end
8
-
9
- def setMsgid param
10
- @params['mocean-msgid'] = param
11
- end
12
-
13
- def setRespFormat param
14
- @params['mocean-resp-format'] = param
15
- end
16
-
17
- def inquiry params
18
- create(params)
19
- createFinalParams
20
- isRequiredFieldsSet
21
- response = Transmitter.new('/rest/1/report/message','get',@params)
22
- reset
23
- return response.getResponse()
24
- end
1
+ module Moceansdk
2
+ module Modules
3
+ module Message
4
+
5
+ class MessageStatus < Moceansdk::Modules::AbstractClient
6
+ def initialize(obj_auth, transmitter)
7
+ super(obj_auth, transmitter)
8
+ @required_fields = ['mocean-api-key', 'mocean-api-secret', 'mocean-msgid']
9
+ end
10
+
11
+ def msgid=(param)
12
+ @params['mocean-msgid'] = param
13
+ end
14
+
15
+ def resp_format=(param)
16
+ @params['mocean-resp-format'] = param
17
+ end
18
+
19
+ def inquiry(params = {})
20
+ create(params)
21
+ create_final_params
22
+ required_field_set?
23
+
24
+ @transmitter.get('/report/message', @params)
25
+ end
26
+ end
27
+
28
+ end
29
+ end
25
30
  end
@@ -1,96 +1,74 @@
1
- require_relative "../abstract"
2
-
3
- class Sms < MoceanFactory
4
-
5
- attr_writer :flashSms
6
-
7
- def initialize client
8
- super(client)
9
- @flashSms = false
10
- @required_fileds = ['mocean-api-key','mocean-api-secret','mocean-from','mocean-to','mocean-text']
11
- end
12
-
13
- def setFrom param
14
- @params['mocean-from'] = param
15
- return self
16
- end
17
-
18
- def setTo param
19
- @params['mocean-to'] = param
20
- return self
21
- end
22
-
23
- def setText param
24
- @params['mocean-text'] = param
25
- return self
26
- end
27
-
28
- def setUdh param
29
- @params['mocean-udh'] = param
30
- return self
31
- end
32
-
33
- def setCoding param
34
- @params['mocean-coding'] = param
35
- return self
36
- end
37
-
38
- def setDlrMask param
39
- @params['mocean-dlr-mask'] = param
40
- return self
41
- end
42
-
43
- def setDlrUrl param
44
- @params['mocean-dlr-url'] = param
45
- return self
46
- end
47
-
48
- def setSchedule param
49
- @params['mocean-schedule'] = param
50
- return self
51
- end
52
-
53
- def setMclass param
54
- @params['mocean-mclass'] = param
55
- return self
56
- end
57
-
58
- def setAltDcs param
59
- @params['mocean-alt-dcs'] = param
60
- return self
61
- end
62
-
63
- def setCharset param
64
- @params['mocean-charset'] = param
65
- return self
66
- end
67
-
68
- def setValidity param
69
- @params['mocean-validity'] = param
70
- return self
71
- end
72
-
73
- def setRespFormat param
74
- @params['mocean-resp-format'] = param
75
- return self
76
- end
77
-
78
- def create params = {}
79
- reset
80
- super(params)
81
- return self
82
- end
83
-
84
- def send
85
- if @flashSms == true
86
- setMclass(1)
87
- setAltDcs(1)
88
- end
89
- createFinalParams
90
- isRequiredFieldsSet
91
- response = Transmitter.new('/rest/1/sms','post',@params)
92
- return response.getResponse()
93
- end
94
-
95
-
96
- end
1
+ module Moceansdk
2
+ module Modules
3
+ module Message
4
+
5
+ class Sms < AbstractClient
6
+ def initialize(obj_auth, transmitter)
7
+ super(obj_auth, transmitter)
8
+ @required_fields = ['mocean-api-key', 'mocean-api-secret', 'mocean-from', 'mocean-to', 'mocean-text']
9
+ end
10
+
11
+ def from=(param)
12
+ @params['mocean-from'] = param
13
+ end
14
+
15
+ def to=(param)
16
+ @params['mocean-to'] = param
17
+ end
18
+
19
+ def text=(param)
20
+ @params['mocean-text'] = param
21
+ end
22
+
23
+ def udh=(param)
24
+ @params['mocean-udh'] = param
25
+ end
26
+
27
+ def coding=(param)
28
+ @params['mocean-coding'] = param
29
+ end
30
+
31
+ def dlr_mask=(param)
32
+ @params['mocean-dlr-mask'] = param
33
+ end
34
+
35
+ def dlr_url=(param)
36
+ @params['mocean-dlr-url'] = param
37
+ end
38
+
39
+ def schedule=(param)
40
+ @params['mocean-schedule'] = param
41
+ end
42
+
43
+ def mclass=(param)
44
+ @params['mocean-mclass'] = param
45
+ end
46
+
47
+ def alt_dcs=(param)
48
+ @params['mocean-alt-dcs'] = param
49
+ end
50
+
51
+ def charset=(param)
52
+ @params['mocean-charset'] = param
53
+ end
54
+
55
+ def validity=(param)
56
+ @params['mocean-validity'] = param
57
+ end
58
+
59
+ def resp_format=(param)
60
+ @params['mocean-resp-format'] = param
61
+ end
62
+
63
+ def send(params = {})
64
+ create(params)
65
+ create_final_params
66
+ required_field_set?
67
+
68
+ @transmitter.post('/sms', @params)
69
+ end
70
+ end
71
+
72
+ end
73
+ end
74
+ end
@@ -1,59 +1,84 @@
1
- require_relative "../abstract"
2
-
3
- class Verify_request < MoceanFactory
4
-
5
- def __init__ client
6
- super(client)
7
- @required_fields = ['mocean-api-key','mocean-api-secret','mocean-to','mocean-brand']
8
- end
9
-
10
- def setTo param
11
- @params['mocean-to'] = param
12
- return self
13
- end
14
-
15
- def setBrand
16
- @params['mocean-brand'] = param
17
- return self;
18
- end
19
-
20
- def setFrom param
21
- @params['mocean-from'] = param
22
- return self;
23
- end
24
-
25
- def setTemplate param
26
- @params['mocean-template'] = param
27
- return self;
28
- end
29
-
30
- def setPinValidate param
31
- @params['mocean-pin-validate'] = param
32
- return self
33
- end
34
-
35
- def setNextEventWait param
36
- @params['mocean-next-event-wait'] = param
37
- return self
38
- end
39
-
40
- def setRespFormat param
41
- @params['mocean-resp-format'] = param
42
- return self
43
- end
44
-
45
- def create params = {}
46
- reset
47
- super(params)
48
- return self
49
- end
50
-
51
- def send
52
- createFinalParams
53
- isRequiredFieldsSet
54
- response = Transmitter.new('/rest/1/verify/req','post',@params)
55
- return response.getResponse()
56
- end
57
-
58
-
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
+ elsif @channel == Channel::TELEGRAM
67
+ verify_request_url += '/telegram'
68
+ end
69
+
70
+ @transmitter.post(verify_request_url, @params)
71
+ end
72
+
73
+ def resend(params = {})
74
+ send_as Channel::SMS
75
+ @is_resend = true
76
+ @required_fields = ['mocean-api-key', 'mocean-api-secret', 'mocean-reqid']
77
+
78
+ send(params)
79
+ end
80
+ end
81
+
82
+ end
83
+ end
59
84
  end