kavenegar-ruby 1.0.0

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 (38) hide show
  1. checksums.yaml +7 -0
  2. data/lib/generators/kavenegar-ruby/install_generator.rb +18 -0
  3. data/lib/generators/templates/kavenegar-ruby_initializer.rb +18 -0
  4. data/lib/kavenegar-ruby.rb +39 -0
  5. data/lib/kavenegar-ruby/core.rb +11 -0
  6. data/lib/kavenegar-ruby/helper.rb +3 -0
  7. data/lib/kavenegar-ruby/helpers/convertor.rb +39 -0
  8. data/lib/kavenegar-ruby/helpers/validator.rb +31 -0
  9. data/lib/kavenegar-ruby/meaning.rb +42 -0
  10. data/lib/kavenegar-ruby/request.rb +5 -0
  11. data/lib/kavenegar-ruby/requests/RequestBase.rb +11 -0
  12. data/lib/kavenegar-ruby/requests/cancel.rb +40 -0
  13. data/lib/kavenegar-ruby/requests/config.rb +41 -0
  14. data/lib/kavenegar-ruby/requests/countinbox.rb +34 -0
  15. data/lib/kavenegar-ruby/requests/countpostalcode.rb +34 -0
  16. data/lib/kavenegar-ruby/requests/deliver.rb +32 -0
  17. data/lib/kavenegar-ruby/requests/info.rb +19 -0
  18. data/lib/kavenegar-ruby/requests/latestoutbox.rb +28 -0
  19. data/lib/kavenegar-ruby/requests/lookup.rb +45 -0
  20. data/lib/kavenegar-ruby/requests/receive.rb +29 -0
  21. data/lib/kavenegar-ruby/requests/selectoutbox.rb +32 -0
  22. data/lib/kavenegar-ruby/requests/send.rb +54 -0
  23. data/lib/kavenegar-ruby/requests/tts.rb +45 -0
  24. data/lib/kavenegar-ruby/respond.rb +3 -0
  25. data/lib/kavenegar-ruby/responds/cancel.rb +32 -0
  26. data/lib/kavenegar-ruby/responds/config.rb +34 -0
  27. data/lib/kavenegar-ruby/responds/countinbox.rb +34 -0
  28. data/lib/kavenegar-ruby/responds/countpostalcode.rb +34 -0
  29. data/lib/kavenegar-ruby/responds/deliver.rb +38 -0
  30. data/lib/kavenegar-ruby/responds/info.rb +32 -0
  31. data/lib/kavenegar-ruby/responds/latestoutbox.rb +38 -0
  32. data/lib/kavenegar-ruby/responds/lookup.rb +38 -0
  33. data/lib/kavenegar-ruby/responds/receive.rb +38 -0
  34. data/lib/kavenegar-ruby/responds/selectoutbox.rb +38 -0
  35. data/lib/kavenegar-ruby/responds/send.rb +38 -0
  36. data/lib/kavenegar-ruby/responds/tts.rb +38 -0
  37. data/lib/kavenegar-ruby/version.rb +3 -0
  38. metadata +208 -0
@@ -0,0 +1,28 @@
1
+ module KaveRestApi
2
+ class LatestOutBox < KaveRestApi::RequestBase
3
+ include Validatable
4
+ attr_accessor :pagesize,:sender
5
+ attr_reader :response
6
+ validates_format_of :sender, :with => /^\d*$/, :if => Proc.new { !sender.nil? }
7
+ validates_format_of :pagesize, :with => /^\d*$/, :if => Proc.new { !unixdate.nil? }
8
+ validates_length_of :pagesize, :within => 1..4
9
+ def initialize(args = {})
10
+ super
11
+ @ACTION_NAME = [:latestoutbox,@FORMAT].join('.').freeze
12
+ @pagesize = args.fetch(:pagesize,3000).ctsd
13
+ @sender = args.fetch(:sender,nil)
14
+ @response = ResponseLatestOutBox.new
15
+ end
16
+
17
+ def call
18
+ connection = Faraday.new(url: "#{@API_URL}/sms/") do |faraday|
19
+ faraday.adapter Faraday.default_adapter
20
+ faraday.response @FORMAT.to_sym
21
+ end
22
+ response = connection.get(@ACTION_NAME, sender: @sender,pagesize: @pagesize)
23
+ @response.validate(response.body)
24
+ end
25
+
26
+ end
27
+
28
+ end
@@ -0,0 +1,45 @@
1
+ module KaveRestApi
2
+ class Lookup < KaveRestApi::RequestBase
3
+ include Validatable
4
+ attr_accessor :receptor, :message,:unixdate,:type,:date,:localid,:sender
5
+ attr_reader :response,:message_size
6
+ validates_presence_of :token
7
+ validates_presence_of :receptor
8
+ validates_length_of :message, :within => 1..140
9
+ validates_format_of :sender, :with => /^\d*$/, :if => Proc.new { !sender.nil? }
10
+ validates_format_of :unixdate, :with => /^\d*$/, :if => Proc.new { !unixdate.nil? }
11
+
12
+ def initialize(args = {})
13
+ super
14
+ @ACTION_NAME = [:lookup,@FORMAT].join('.').freeze
15
+ @receptor = args.fetch(:receptor)
16
+ @receptor = @receptor.ctsd
17
+ @valid_receptor = @receptor.is_phone?
18
+ @token = args.fetch(:token)
19
+ @token2 = args.fetch(:token2,nil)
20
+ @token3 = args.fetch(:token3,nil)
21
+ @template = args.fetch(:template)
22
+ @type = args.fetch(:type,'sms')
23
+ @response = ResponseLookup.new
24
+ end
25
+
26
+ def valid_message?
27
+ @valid_message ||= true
28
+ end
29
+
30
+ def valid_receptor?
31
+ @valid_receptor
32
+ end
33
+
34
+ def call
35
+ connection = Faraday.new(url: "#{@API_URL}/verify/") do |faraday|
36
+ faraday.adapter Faraday.default_adapter
37
+ faraday.response @FORMAT.to_sym
38
+ end
39
+ response = connection.get(@ACTION_NAME, receptor: @receptor , token: @token , template: @template , type: @type , token2: @token2 , token3: @token3)
40
+ @response.validate(response.body)
41
+ end
42
+
43
+ end
44
+
45
+ end
@@ -0,0 +1,29 @@
1
+ module KaveRestApi
2
+ class Receive < KaveRestApi::RequestBase
3
+ attr_accessor :linenumber, :isread
4
+ attr_reader :response
5
+ include Validatable
6
+ validates_presence_of :linenumber
7
+ validates_presence_of :isread
8
+ validates_format_of :isread, :with => /^[01]$/, :if => Proc.new { !isread.nil? }
9
+
10
+ def initialize(args = {})
11
+ super
12
+ @ACTION_NAME = [:receive,@FORMAT].join('.').freeze
13
+ @linenumber = args.fetch(:linenumber,@DEFAULT_SENDER)
14
+ @isread = args.fetch(:isread,0)
15
+ @response = ResponseReceive.new
16
+ end
17
+
18
+ def call
19
+ connection = Faraday.new(url: "#{@API_URL}/sms/") do |faraday|
20
+ faraday.adapter Faraday.default_adapter
21
+ faraday.response @FORMAT.to_sym
22
+ end
23
+ response = connection.get(@ACTION_NAME,linenumber: @linenumber,isread: @isread)
24
+ @response.validate(response.body)
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -0,0 +1,32 @@
1
+ module KaveRestApi
2
+ class SelectOutBox < KaveRestApi::RequestBase
3
+
4
+ include Validatable
5
+ attr_accessor :startdate,:sender,:enddate
6
+ attr_reader :response
7
+ validates_presence_of :startdate
8
+ validates_format_of :sender, :with => /^\d*$/, :if => Proc.new { !sender.nil? }
9
+ validates_format_of :startdate, :with => /^\d*$/, :if => Proc.new { !unixdate.nil? }
10
+ validates_format_of :enddate, :with => /^\d*$/, :if => Proc.new { !unixdate.nil? }
11
+
12
+ def initialize(args = {})
13
+ super
14
+ @ACTION_NAME = [:selectoutbox,@FORMAT].join('.').freeze
15
+ @startdate = args.fetch(:startdate)
16
+ @enddate = args.fetch(:enddate,nil)
17
+ @sender = args.fetch(:sender,nil)
18
+ @response = ResponseSelectOutBox.new
19
+ end
20
+
21
+ def call
22
+ connection = Faraday.new(url: "#{API_URL}/sms/") do |faraday|
23
+ faraday.adapter Faraday.default_adapter
24
+ faraday.response FORMAT.to_sym
25
+ end
26
+ response = connection.get(ACTION_NAME, sender: @sender,startdate: @startdate,enddate: @enddate)
27
+ @response.validate(response.body)
28
+ end
29
+
30
+ end
31
+
32
+ end
@@ -0,0 +1,54 @@
1
+ module KaveRestApi
2
+ class SendSimple < KaveRestApi::RequestBase
3
+ include Validatable
4
+ attr_accessor :receptor, :message,:unixdate,:type,:date,:localid,:sender
5
+ attr_reader :response,:message_size,:config
6
+ validates_presence_of :message
7
+ validates_presence_of :receptor
8
+ validates_length_of :message, :within => 1..140
9
+ validates_format_of :sender, :with => /^\d*$/, :if => Proc.new { !sender.nil? }
10
+ validates_format_of :unixdate, :with => /^\d*$/, :if => Proc.new { !unixdate.nil? }
11
+
12
+ def initialize(args = {})
13
+ super
14
+ @ACTION_NAME = [:send,@FORMAT].join('.').freeze
15
+ @receptor = args.fetch(:receptor)
16
+
17
+ if @receptor.kind_of?(Array)
18
+ @valid_receptor= false if @receptor.length > 200
19
+ @receptor = @receptor.join(',')
20
+ end
21
+ @receptor = @receptor.ctsd
22
+ @date = args.fetch(:date,nil)
23
+ @message = args.fetch(:message)
24
+ @message = @message.ctsd if args.fetch(:standard_digit,false)
25
+ @unixdate = args.fetch(:unixdate,nil)
26
+ @type = args.fetch(:type,nil)
27
+ @localid = args.fetch(:localid,nil)
28
+ @sender = args.fetch(:sender,@DEFAULT_SENDER)
29
+ @response = ResponseSendSimple.new
30
+ @message_size=@message.multibyte? ? 268:612
31
+ @valid_message= (@message.length > @message_size ) ? false:true
32
+ end
33
+
34
+ def valid_message?
35
+ @valid_message
36
+ end
37
+
38
+ def valid_receptor?
39
+ @valid_receptor
40
+ end
41
+
42
+ def call
43
+ connection = Faraday.new(url: "#{@API_URL}/sms/") do |faraday|
44
+ faraday.adapter Faraday.default_adapter
45
+ faraday.response @FORMAT.to_sym
46
+ end
47
+
48
+ response = connection.get(@ACTION_NAME, receptor: @receptor , message: @message,localid: @localid,sender: @sender,date: @date,type: @type)
49
+ @response.validate(response.body)
50
+ end
51
+
52
+ end
53
+
54
+ end
@@ -0,0 +1,45 @@
1
+ module KaveRestApi
2
+ class Tts < KaveRestApi::RequestBase
3
+ include Validatable
4
+ attr_accessor :receptor, :message,:date,:localid,:repeat
5
+ attr_reader :response,:message,:config,:status,:statustext,:sender,:receptor,:date,:cost
6
+ validates_presence_of :message
7
+ validates_presence_of :receptor
8
+ validates_length_of :message, :within => 1..500
9
+
10
+
11
+
12
+ def initialize(args = {})
13
+ super
14
+ @ACTION_NAME = [:maketts,@FORMAT].join('.').freeze
15
+ @receptor = args.fetch(:receptor)
16
+ if @receptor.kind_of?(Array)
17
+ @valid_receptor= false if @receptor.length > 200
18
+ @receptor = @receptor.join(',')
19
+ end
20
+ @receptor = @receptor.ctsd
21
+ @date = args.fetch(:date,nil)
22
+ @message = args.fetch(:message)
23
+ @message = @message.ctsd if args.fetch(:standard_digit,false)
24
+ @repeat = args.fetch(:repeat,nil)
25
+ @localid = args.fetch(:localid,nil)
26
+ @response = ResponseSendSimple.new
27
+ end
28
+
29
+ def valid_receptor?
30
+ @valid_receptor
31
+ end
32
+
33
+ def call
34
+ connection = Faraday.new(url: "#{@API_URL}/call/") do |faraday|
35
+ faraday.adapter Faraday.default_adapter
36
+ faraday.response @FORMAT.to_sym
37
+ end
38
+
39
+ response = connection.get(@ACTION_NAME, receptor: @receptor , message: @message,localid: @localid,date: @date,repeat: @repeat)
40
+ @response.validate(response.body)
41
+ end
42
+
43
+ end
44
+
45
+ end
@@ -0,0 +1,3 @@
1
+ module KaveRestApi
2
+ self.require_libs './responds','tts','send','deliver','latestoutbox','selectoutbox','info','config','receive','lookup','countinbox','cancel','countpostalcode'
3
+ end
@@ -0,0 +1,32 @@
1
+ module KaveRestApi
2
+ class ResponseCancel
3
+ attr_reader :response, :status,:statusmessage
4
+
5
+ def validate(response = nil)
6
+ @response = response
7
+ perform_validation
8
+ return self
9
+ end
10
+
11
+ def valid?
12
+ @valid
13
+ end
14
+
15
+ def entries
16
+ return @response['entries']
17
+ end
18
+
19
+ def full_message_errors
20
+ return KaveRestApi::ERRORS[@response['return']['status'].to_s]
21
+ end
22
+
23
+ private
24
+
25
+ def perform_validation
26
+ raise ArgumentError, 'not a valid response' if @response.nil?
27
+ @valid = (@response['return']['status'] == 200)
28
+ end
29
+
30
+ end
31
+
32
+ end
@@ -0,0 +1,34 @@
1
+ module KaveRestApi
2
+ class ResponseConfig
3
+ attr_reader :response, :status,:statusmessage
4
+ attr_accessor :apilogs,:dailyreport,:debugmode,:defaultsender,:mincreditalarm,:resendfailed
5
+
6
+ def validate(response = nil)
7
+ @response = response
8
+ perform_validation
9
+ return self
10
+ end
11
+
12
+ def valid?
13
+ @valid
14
+ end
15
+
16
+ def entries
17
+ return @response['entries']
18
+ end
19
+
20
+ def full_message_errors
21
+ return KaveRestApi::ERRORS[@response['return']['status'].to_s]
22
+ end
23
+
24
+ private
25
+
26
+ def perform_validation
27
+ raise ArgumentError, 'not a valid response' if @response.nil?
28
+ @valid = (@response['return']['status'] == 200)
29
+ @response['entries'].each { |key, value| send("#{key}=", value) }
30
+ end
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,34 @@
1
+ module KaveRestApi
2
+ class ResponseCountInBox
3
+ attr_reader :response, :status,:statusmessage
4
+ attr_accessor :apilogs,:dailyreport,:debugmode,:defaultsender,:mincreditalarm,:resendfailed
5
+
6
+ def validate(response = nil)
7
+ @response = response
8
+ perform_validation
9
+ return self
10
+ end
11
+
12
+ def valid?
13
+ @valid
14
+ end
15
+
16
+ def entries
17
+ return @response['entries']
18
+ end
19
+
20
+ def full_message_errors
21
+ return KaveRestApi::ERRORS[@response['return']['status'].to_s]
22
+ end
23
+
24
+ private
25
+
26
+ def perform_validation
27
+ raise ArgumentError, 'not a valid response' if @response.nil?
28
+ @valid = (@response['return']['status'] == 200)
29
+ @response['entries'].each { |key, value| send("#{key}=", value) }
30
+ end
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,34 @@
1
+ module KaveRestApi
2
+ class ResponseCountPostalCode
3
+ attr_reader :response, :status,:statusmessage
4
+ attr_accessor :section,:value
5
+
6
+ def validate(response = nil)
7
+ @response = response
8
+ perform_validation
9
+ return self
10
+ end
11
+
12
+ def valid?
13
+ @valid
14
+ end
15
+
16
+ def entries
17
+ return @response['entries']
18
+ end
19
+
20
+ def full_message_errors
21
+ return KaveRestApi::ERRORS[@response['return']['status'].to_s]
22
+ end
23
+
24
+ private
25
+
26
+ def perform_validation
27
+ raise ArgumentError, 'not a valid response' if @response.nil?
28
+ @valid = (@response['return']['status'] == 200)
29
+ @response['entries'].each { |key, value| send("#{key}=", value) }
30
+ end
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,38 @@
1
+ module KaveRestApi
2
+ class ResponseDeliver
3
+ attr_reader :response, :status,:statusmessage
4
+
5
+ def validate(response = nil)
6
+ @response = response
7
+ perform_validation
8
+ return self
9
+ end
10
+
11
+ def valid?
12
+ @valid
13
+ end
14
+
15
+ def entries(select=nil)
16
+ if select.nil?
17
+ return @response['entries']
18
+ else
19
+ return @response['entries'].select { |en|
20
+ en['status'] == (KaveRestApi::ENTRIES[select].nil? ? select:KaveRestApi::ENTRIES[select])
21
+ }
22
+ end
23
+ end
24
+
25
+ def full_message_errors
26
+ return KaveRestApi::ERRORS[@response['return']['status'].to_s]
27
+ end
28
+
29
+ private
30
+
31
+ def perform_validation
32
+ raise ArgumentError, 'not a valid response' if @response.nil?
33
+ @valid = (@response['return']['status'] == 200)
34
+ end
35
+
36
+ end
37
+
38
+ end
@@ -0,0 +1,32 @@
1
+ module KaveRestApi
2
+ class ResponseInfo
3
+ attr_reader :response, :status,:statusmessage
4
+
5
+ def validate(response = nil)
6
+ @response = response
7
+ perform_validation
8
+ return self
9
+ end
10
+
11
+ def valid?
12
+ @valid
13
+ end
14
+
15
+ def entries
16
+ return @response['entries']
17
+ end
18
+
19
+ def full_message_errors
20
+ return KaveRestApi::ERRORS[@response['return']['status'].to_s]
21
+ end
22
+
23
+ private
24
+
25
+ def perform_validation
26
+ raise ArgumentError, 'not a valid response' if @response.nil?
27
+ @valid = (@response['return']['status'] == 200)
28
+ end
29
+
30
+ end
31
+
32
+ end