kave_rest_api_modern 0.2

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/kave_rest_api/install_generator.rb +18 -0
  3. data/lib/generators/templates/kave_rest_api_initializer.rb +18 -0
  4. data/lib/kave_rest_api/core.rb +11 -0
  5. data/lib/kave_rest_api/helper.rb +3 -0
  6. data/lib/kave_rest_api/helpers/convertor.rb +39 -0
  7. data/lib/kave_rest_api/helpers/validator.rb +31 -0
  8. data/lib/kave_rest_api/meaning.rb +42 -0
  9. data/lib/kave_rest_api/request.rb +5 -0
  10. data/lib/kave_rest_api/requests/RequestBase.rb +11 -0
  11. data/lib/kave_rest_api/requests/cancel.rb +40 -0
  12. data/lib/kave_rest_api/requests/config.rb +41 -0
  13. data/lib/kave_rest_api/requests/countinbox.rb +34 -0
  14. data/lib/kave_rest_api/requests/countpostalcode.rb +34 -0
  15. data/lib/kave_rest_api/requests/deliver.rb +32 -0
  16. data/lib/kave_rest_api/requests/info.rb +19 -0
  17. data/lib/kave_rest_api/requests/latestoutbox.rb +28 -0
  18. data/lib/kave_rest_api/requests/lookup.rb +45 -0
  19. data/lib/kave_rest_api/requests/receive.rb +29 -0
  20. data/lib/kave_rest_api/requests/selectoutbox.rb +32 -0
  21. data/lib/kave_rest_api/requests/send.rb +54 -0
  22. data/lib/kave_rest_api/requests/tts.rb +45 -0
  23. data/lib/kave_rest_api/respond.rb +3 -0
  24. data/lib/kave_rest_api/responds/cancel.rb +32 -0
  25. data/lib/kave_rest_api/responds/config.rb +34 -0
  26. data/lib/kave_rest_api/responds/countinbox.rb +34 -0
  27. data/lib/kave_rest_api/responds/countpostalcode.rb +34 -0
  28. data/lib/kave_rest_api/responds/deliver.rb +38 -0
  29. data/lib/kave_rest_api/responds/info.rb +32 -0
  30. data/lib/kave_rest_api/responds/latestoutbox.rb +38 -0
  31. data/lib/kave_rest_api/responds/lookup.rb +38 -0
  32. data/lib/kave_rest_api/responds/receive.rb +38 -0
  33. data/lib/kave_rest_api/responds/selectoutbox.rb +38 -0
  34. data/lib/kave_rest_api/responds/send.rb +38 -0
  35. data/lib/kave_rest_api/responds/tts.rb +38 -0
  36. data/lib/kave_rest_api/version.rb +3 -0
  37. data/lib/kave_rest_api.rb +39 -0
  38. metadata +191 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 067041c32c86b5198bfc2b573a92bdae35ea0c862121e103debc4d80664d0dea
4
+ data.tar.gz: 65751ad4693fab6e87a4049059654efe0eff799235c7e5103d858e3405507798
5
+ SHA512:
6
+ metadata.gz: 6f7e592fab75736467d57b408bdcdcafb5aa9f52862ec9292c9e6249f3acfe0272b24355f045344d206108127b4fd217e434677f83f3874990985a019e3649c4
7
+ data.tar.gz: e19a97622d9b49dcb2286878f62be8e06cab99fb0dbc6bfcd4ae417119cbec89eaf1c9a592e9f4752fb773bec7ed95549a629e0dbf4ce4412c8493abdaf4c62a
@@ -0,0 +1,18 @@
1
+ module KaveRestApi
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ source_root File.expand_path("../../templates", __FILE__)
5
+ desc "Creates KaveRestApi initializer for your application"
6
+
7
+ def copy_initializer
8
+ template "kave_rest_api_initializer.rb", "config/initializers/kave_rest_api.rb"
9
+
10
+ puts <<~EOF
11
+ \e[36mInstall complete 👻 \e[0m
12
+ For report issues or suggest feature contact me on twitter/github: \e[32m@mm580486\e[0m
13
+ EOF
14
+ end
15
+
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ KaveRestApi.configure do |config|
2
+
3
+ # To completely ignore debug mode events(No Errors) uncomment this line *optional
4
+ # config.debugmode = false #by default it's true
5
+
6
+ # It is recommended that you pull your API keys from environment settings. *required
7
+ config.api_key = 'XXXX-XXXX-XXXX-XXXX'
8
+
9
+ # Default response format is json (you can use xml too). *optional
10
+ config.format = 'json'
11
+
12
+ #If you don't set your sender number in your request, this is the default number used instead *required
13
+ config.default_sender = '10000777070777'
14
+
15
+ # You can remove problematic emojis (like android emojis) and replace with standard emojis listed here:(https://www.webpagefx.com/tools/emoji-cheat-sheet/)
16
+ # config.strip_emoji = false # can include false , true and matcher
17
+
18
+ end
@@ -0,0 +1,11 @@
1
+ module KaveRestApi
2
+
3
+ I18n.config.available_locales = :en
4
+
5
+ def self.require_libs(lib_path,*libs)
6
+ libs.each do |lib|
7
+ require_relative "#{lib_path}/#{lib}"
8
+ end
9
+ end
10
+
11
+ end
@@ -0,0 +1,3 @@
1
+ module KaveRestApi
2
+ self.require_libs './helpers','convertor','validator'
3
+ end
@@ -0,0 +1,39 @@
1
+
2
+ module KaveRestApi
3
+ module NumberHelper
4
+ def ctpd
5
+ return self.to_s.tr('0123456789','Û°Ù¡Û²Û³Û´ÛµÛ¶Û·Û¸Û¹')
6
+ end
7
+
8
+ end
9
+
10
+ module StringHelper
11
+
12
+ def ctsd
13
+ return self.to_s.tr('۰١۱۲۳۴۵۶۷۸۹،١٢٣٤٥٦٧٨٩٠','01123456789,1234567890')
14
+ end
15
+
16
+ def ctpd
17
+ return self.to_s.tr('01123456789,','۰١۱۲۳۴۵۶۷۸۹،')
18
+ end
19
+
20
+ def strip_emoji
21
+ str = self.force_encoding('utf-8').encode
22
+ arr_regex=[/[\u{1f600}-\u{1f64f}]/,/[\u{2702}-\u{27b0}]/,/[\u{1f680}-\u{1f6ff}]/,/[\u{24C2}-\u{1F251}]/,/[\u{1f300}-\u{1f5ff}]/]
23
+ arr_regex.each do |regex|
24
+ str = str.gsub regex, ''
25
+ end
26
+ return str
27
+ end
28
+
29
+ end
30
+
31
+ end
32
+
33
+ class Integer
34
+ include KaveRestApi::NumberHelper
35
+ end
36
+
37
+ class String
38
+ include KaveRestApi::StringHelper
39
+ end
@@ -0,0 +1,31 @@
1
+
2
+ module KaveRestApi
3
+ module NumberHelper
4
+
5
+ def is_phone?
6
+ return !!self.match(/^(09{1})+([1-3]{1})+(\d{8})$/)
7
+ end
8
+
9
+ end
10
+
11
+ module StringHelper
12
+
13
+ def multibyte?
14
+ chars.count < bytes.count
15
+ end
16
+
17
+ def is_phone?
18
+ return !!self.ctsd.match(/^(09{1})+([1-3]{1})+(\d{8})$/)
19
+ end
20
+
21
+ end
22
+
23
+ end
24
+
25
+ class Integer
26
+ include KaveRestApi::NumberHelper
27
+ end
28
+
29
+ class String
30
+ include KaveRestApi::StringHelper
31
+ end
@@ -0,0 +1,42 @@
1
+ module KaveRestApi
2
+ ERRORS = {
3
+ '200' => I18n.t("KaveRestApi.200", :default => "Request Approved"),
4
+ '400' => I18n.t("KaveRestApi.400", :default => "Argument Error"),
5
+ '401' => I18n.t("KaveRestApi.401", :default => "Account has been disabled"),
6
+ '402' => I18n.t("KaveRestApi.402", :default => "Operation failed"),
7
+ '403' => I18n.t("KaveRestApi.403", :default => "Not a valid API key"),
8
+ '404' => I18n.t("KaveRestApi.404", :default => "Undeifined method"),
9
+ '405' => I18n.t("KaveRestApi.405", :default => "Get / Post wrong"),
10
+ '406' => I18n.t("KaveRestApi.406", :default => "Eequired field"),
11
+ '407' => I18n.t("KaveRestApi.407", :default => "You don't currently have permission to access this method"),
12
+ '408' => I18n.t("KaveRestApi.408", :default => "fallback text"),
13
+ '409' => I18n.t("KaveRestApi.409", :default => "Server not able to respond"),
14
+ '411' => I18n.t("KaveRestApi.411", :default => "Not a valid receptor"),
15
+ '412' => I18n.t("KaveRestApi.412", :default => "Not a valid sender"),
16
+ '413' => I18n.t("KaveRestApi.413", :default => "Message is invalid"),
17
+ '414' => I18n.t("KaveRestApi.414", :default => "Request is limit"),
18
+ '415' => I18n.t("KaveRestApi.415", :default => "fallback text"),
19
+ '417' => I18n.t("KaveRestApi.417", :default => "Not a valid UnixTime"),
20
+ '418' => I18n.t("KaveRestApi.418", :default => "Your credit is not enough"),
21
+ '419' => I18n.t("KaveRestApi.419", :default => "fallback text"),
22
+ '422' => I18n.t("KaveRestApi.422", :default => "fallback text"),
23
+ '424' => I18n.t("KaveRestApi.424", :default => "Template not found"),
24
+ '426' => I18n.t("KaveRestApi.426", :default => "fallback text"),
25
+ '428' => I18n.t("KaveRestApi.428", :default => "fallback text"),
26
+ '431' => I18n.t("KaveRestApi.431", :default => "fallback text"),
27
+ }
28
+
29
+
30
+ ENTRIES = {
31
+ :inÙ€queue => '1',
32
+ :givenÙ€date => '2',
33
+ :deliver_to_telecommunications => '4',
34
+ :failed => '6',
35
+ :delivered => '10',
36
+ :inaccessible => '11',
37
+ :ads_block => '14',
38
+ :sms_id_is_invalid => '100'
39
+ }
40
+
41
+
42
+ end
@@ -0,0 +1,5 @@
1
+ module KaveRestApi
2
+
3
+ self.require_libs './requests','RequestBase','tts','send','deliver','latestoutbox','selectoutbox','info','config','receive','lookup','countinbox','cancel','countpostalcode'
4
+
5
+ end
@@ -0,0 +1,11 @@
1
+ module KaveRestApi
2
+ class RequestBase
3
+ def initialize(args = {})
4
+ config = KaveRestApi.configuration
5
+ raise(ArgumentError, 'not a valid configuration class') if config.nil? || config.api_key.nil? || config.default_sender.nil?
6
+ @API_URL = "https://api.kavenegar.com/v1/#{config.api_key}"
7
+ @DEFAULT_SENDER = config.default_sender.freeze
8
+ @FORMAT= config.format rescue 'json'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,40 @@
1
+ module KaveRestApi
2
+ class Cancel < KaveRestApi::RequestBase
3
+
4
+ include Validatable
5
+ attr_accessor :messageid
6
+ attr_reader :response
7
+ validates_presence_of :messageid
8
+
9
+ validates_format_of :messageid, :with => /^\d*$/, :if => Proc.new { !messageid.nil? }
10
+
11
+
12
+ def initialize(args = {})
13
+ super
14
+ @ACTION_NAME = [:countinbox,@FORMAT].join('.').freeze
15
+ @messageid = args.fetch(:messageid)
16
+ if @messageid.kind_of?(Array)
17
+ @valid= false if @messageid.length > 200
18
+ @messageid = @messageid.join(',')
19
+ end
20
+ @messageid = @messageid.ctsd
21
+
22
+ @response = ResponseCancel.new
23
+ end
24
+
25
+ def valid?
26
+ @valid ||= true
27
+ end
28
+
29
+ def call
30
+ connection = Faraday.new(url: "#{API_URL}/sms/") do |faraday|
31
+ faraday.adapter Faraday.default_adapter
32
+ faraday.response FORMAT.to_sym
33
+ end
34
+ response = connection.get(ACTION_NAME,isread: @isread, linenumber: @linenumber,startdate: @startdate,enddate: @enddate)
35
+ @response.validate(response.body)
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -0,0 +1,41 @@
1
+ module KaveRestApi
2
+ class Config < KaveRestApi::RequestBase
3
+
4
+ include Validatable
5
+ attr_accessor :apilogs,:dailyreport,:debugmode,:defaultsender,:mincreditalarm,:resendfailed
6
+ attr_reader :response
7
+
8
+ def initialize(args = {})
9
+ @ACTION_NAME = [:config,@FORMAT].join('.').freeze
10
+ @apilogs = args.fetch(:apilogs,nil)
11
+ @dailyreport = args.fetch(:dailyreport,nil)
12
+ @debugmode = args.fetch(:debugmode,nil)
13
+ @defaultsender = args.fetch(:defaultsender,nil)
14
+ @mincreditalarm = args.fetch(:mincreditalarm,nil)
15
+ @resendfailed = args.fetch(:resendfailed,nil)
16
+ @response = ResponseConfig.new
17
+ end
18
+
19
+ def valid?
20
+ @valid
21
+ end
22
+
23
+ def full_message_errors
24
+
25
+ end
26
+
27
+ def call
28
+ connection = Faraday.new(url: "#{@API_URL}/account/") do |faraday|
29
+ faraday.adapter Faraday.default_adapter
30
+ faraday.response @FORMAT.to_sym
31
+ end
32
+ response = connection.get(@ACTION_NAME,apilogs: @apilogs,dailyreport: @dailyreport,debugmode: @debugmode,defaultsender: @defaultsender,mincreditalarm: @mincreditalarm,resendfailed: @resendfailed)
33
+ @response.validate(response.body)
34
+ end
35
+
36
+
37
+
38
+
39
+ end
40
+
41
+ end
@@ -0,0 +1,34 @@
1
+ module KaveRestApi
2
+ class CountInBox < KaveRestApi::RequestBase
3
+
4
+ include Validatable
5
+ attr_accessor :startdate,:linenumber,:enddate
6
+ attr_reader :response
7
+ validates_presence_of :startdate
8
+ validates_presence_of :linenumber
9
+ validates_format_of :linenumber, :with => /^\d*$/, :if => Proc.new { !linenumber.nil? }
10
+ validates_format_of :startdate, :with => /^\d*$/, :if => Proc.new { !unixdate.nil? }
11
+ validates_format_of :enddate, :with => /^\d*$/, :if => Proc.new { !unixdate.nil? }
12
+
13
+ def initialize(args = {})
14
+ super
15
+ @ACTION_NAME = [:countinbox,@FORMAT].join('.').freeze
16
+ @startdate = args.fetch(:startdate)
17
+ @enddate = args.fetch(:enddate,nil)
18
+ @linenumber = args.fetch(:linenumber,nil)
19
+ @isread = args.fetch(:isread,nil)
20
+ @response = ResponseCountInBox.new
21
+ end
22
+
23
+ def call
24
+ connection = Faraday.new(url: "#{API_URL}/sms/") do |faraday|
25
+ faraday.adapter Faraday.default_adapter
26
+ faraday.response FORMAT.to_sym
27
+ end
28
+ response = connection.get(ACTION_NAME,isread: @isread, linenumber: @linenumber,startdate: @startdate,enddate: @enddate)
29
+ @response.validate(response.body)
30
+ end
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,34 @@
1
+ module KaveRestApi
2
+ class CountPostalCode < KaveRestApi::RequestBase
3
+
4
+ include Validatable
5
+ attr_accessor :postalcode
6
+ attr_reader :response
7
+ validates_presence_of :postalcode
8
+
9
+ validates_format_of :postalcode, :with => /^\d*$/, :if => Proc.new { !messageid.nil? }
10
+
11
+
12
+ def initialize(args = {})
13
+ super
14
+ @ACTION_NAME = [:countpostalcode,@FORMAT].join('.').freeze
15
+ @postalcode = args.fetch(:postalcode)
16
+ @postalcode = @postalcode.ctsd
17
+
18
+ @response = ResponseCountPostalCode.new
19
+ end
20
+
21
+
22
+
23
+ def call
24
+ connection = Faraday.new(url: "#{API_URL}/sms/") do |faraday|
25
+ faraday.adapter Faraday.default_adapter
26
+ faraday.response FORMAT.to_sym
27
+ end
28
+ response = connection.get(ACTION_NAME,countpostalcode: @countpostalcode)
29
+ @response.validate(response.body)
30
+ end
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,32 @@
1
+ module KaveRestApi
2
+ class Deliver < KaveRestApi::RequestBase
3
+
4
+ include Validatable
5
+ attr_accessor :messageid
6
+ attr_reader :response
7
+ validates_presence_of :messageid
8
+ validates_format_of :messageid, :with => /^\d*$/, :if => Proc.new { !messageid.nil? }
9
+
10
+ def initialize(args = {})
11
+ @ACTION_NAME = [:status,@FORMAT].join('.').freeze
12
+ @messageid = args.fetch(:messageid)
13
+ if @messageid.kind_of?(Array)
14
+ raise(ArgumentError,'Message Id Arrays: Buffer Overflow: Max length 3000 of array') if @messageid.length > 3000
15
+ @messageid = @messageid.join(',')
16
+ end
17
+ @messageid = @messageid.ctsd
18
+ @response = ResponseDeliver.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, messageid: @messageid)
27
+ @response.validate(response.body)
28
+ end
29
+
30
+ end
31
+
32
+ end
@@ -0,0 +1,19 @@
1
+ module KaveRestApi
2
+ class Info < KaveRestApi::RequestBase
3
+ def initialize(args = {})
4
+ @ACTION_NAME = [:info,@FORMAT].join('.').freeze
5
+ @response = ResponseInfo.new
6
+ end
7
+
8
+ def call
9
+ connection = Faraday.new(url: "#{API_URL}/account/") do |faraday|
10
+ faraday.adapter Faraday.default_adapter
11
+ faraday.response FORMAT.to_sym
12
+ end
13
+ response = connection.get(@ACTION_NAME)
14
+ @response.validate(response.body)
15
+ end
16
+
17
+ end
18
+
19
+ end
@@ -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,token2: @token2, token3: @token3 ,template: @template, message: @message,localid: @localid,sender: @sender,date: @date,type: @type)
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