kavenegar-ruby 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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