kave_rest_api 0.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 35085d98be9a761d0ff0207a7708ae86d947f20e
4
+ data.tar.gz: 1e6086482e28cd0cd1e156e13995961a3d4a766b
5
+ SHA512:
6
+ metadata.gz: ab068e20fb83f83520314f83eaa711c2fe980512b0764ec66b597ff1a3b5ca37e40c4459c8a01ac468fbb3bda9db68e0e748fe5ea9e2060597a8014e9b612d03
7
+ data.tar.gz: fa3876760c5e783ccb728ae1aa274bd4f01525e2d4ea6f3b4b6713472c853e9db51ec86921632820e6edfe345a2252e979f2d3492f5c8434f289585b2659d47f
@@ -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,39 @@
1
+ %w(faraday faraday_middleware validatable i18n).each do |dependency|
2
+ require dependency
3
+ end
4
+
5
+ begin
6
+ require "pry"
7
+ rescue LoadError
8
+
9
+ end
10
+
11
+ module KaveRestApi
12
+
13
+ class << self
14
+ attr_accessor :configuration
15
+ end
16
+
17
+ def self.configure
18
+ self.configuration ||= Configuration.new
19
+ yield configuration
20
+ end
21
+
22
+ class Configuration
23
+ attr_accessor :api_key, :default_sender,:debugmode,:format,:strip_emoji
24
+
25
+ def initialize
26
+
27
+ end
28
+
29
+ end
30
+
31
+ end
32
+
33
+ %w(version core helper request meaning respond).each do |identify|
34
+ require "kave_rest_api/#{identify}"
35
+ end
36
+
37
+
38
+
39
+
@@ -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,')
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 => "fallback text"),
4
+ '400' => 'http://www.banksepah.ir',
5
+ '401' => 'https://www.edbi.ir',
6
+ '402' => 'http://www.bim.ir',
7
+ '403' => 'http://www.bki.ir',
8
+ '404' => 'http://www.bank-maskan.ir',
9
+ '405' => 'http://www.postbank.ir',
10
+ '406' => 'http://www.ttbank.ir',
11
+ '407' => 'http://www.enbank.ir',
12
+ '408' => 'http://www.parsian-bank.ir',
13
+ '409' => 'http://www.bpi.ir',
14
+ '411' => 'http://www.karafarinbank.ir',
15
+ '412' => 'https://www.sb24.com',
16
+ '413' => 'http://www.sinabank.ir',
17
+ '414' => 'http://www.sbank.ir',
18
+ '415' => 'https://www.ba24.ir',
19
+ '417' => 'http://www.shahr-bank.ir',
20
+ '418' => 'http://www.bank-day.org',
21
+ '419' => 'http://www.bsi.ir',
22
+ '422' => 'http://www.bankmellat.ir',
23
+ '424' => 'http://www.tejaratbank.ir',
24
+ '426' => 'https://www.rb24.ir/',
25
+ '428' => 'https://www.ansarbank.com',
26
+ '431' => 'https://www.mebank.ir',
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','send','deliver','latestoutbox','selectoutbox','info','config','receive','lookup'
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,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,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 , 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,3 @@
1
+ module KaveRestApi
2
+ self.require_libs './responds','send','deliver','latestoutbox','selectoutbox','info','config','receive','lookup'
3
+ 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,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
@@ -0,0 +1,38 @@
1
+ module KaveRestApi
2
+ class ResponseLatestOutBox
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,38 @@
1
+ module KaveRestApi
2
+ class ResponseLookup
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 { |entry|
20
+ entry['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,38 @@
1
+ module KaveRestApi
2
+ class ResponseReceive
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,38 @@
1
+ module KaveRestApi
2
+ class ResponseSelectOutBox
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,38 @@
1
+ module KaveRestApi
2
+ class ResponseSendSimple
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 { |entry|
20
+ entry['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,3 @@
1
+ module KaveRestApi
2
+ VERSION = "0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,200 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kave_rest_api
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - mohammad mahmoudi
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-04-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: i18n
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: faraday_middleware
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: json
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: feedjira
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: validatable
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.6'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.6'
97
+ - !ruby/object:Gem::Dependency
98
+ name: bundler
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.14'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.14'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '10.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '10.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '3.0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '3.0'
139
+ description: "\n Ruby gem to send and receive SMS via kavenegar API(rest)\n kavenegar
140
+ is great services for send and receive sms this service has a some feature like
141
+ verification sms or voice service , etc\n "
142
+ email:
143
+ - mm580486@gmail.com
144
+ executables: []
145
+ extensions: []
146
+ extra_rdoc_files: []
147
+ files:
148
+ - lib/generators/kave_rest_api/install_generator.rb
149
+ - lib/generators/templates/kave_rest_api_initializer.rb
150
+ - lib/kave_rest_api.rb
151
+ - lib/kave_rest_api/core.rb
152
+ - lib/kave_rest_api/helper.rb
153
+ - lib/kave_rest_api/helpers/convertor.rb
154
+ - lib/kave_rest_api/helpers/validator.rb
155
+ - lib/kave_rest_api/meaning.rb
156
+ - lib/kave_rest_api/request.rb
157
+ - lib/kave_rest_api/requests/RequestBase.rb
158
+ - lib/kave_rest_api/requests/config.rb
159
+ - lib/kave_rest_api/requests/deliver.rb
160
+ - lib/kave_rest_api/requests/info.rb
161
+ - lib/kave_rest_api/requests/latestoutbox.rb
162
+ - lib/kave_rest_api/requests/lookup.rb
163
+ - lib/kave_rest_api/requests/receive.rb
164
+ - lib/kave_rest_api/requests/selectoutbox.rb
165
+ - lib/kave_rest_api/requests/send.rb
166
+ - lib/kave_rest_api/respond.rb
167
+ - lib/kave_rest_api/responds/config.rb
168
+ - lib/kave_rest_api/responds/deliver.rb
169
+ - lib/kave_rest_api/responds/info.rb
170
+ - lib/kave_rest_api/responds/latestoutbox.rb
171
+ - lib/kave_rest_api/responds/lookup.rb
172
+ - lib/kave_rest_api/responds/receive.rb
173
+ - lib/kave_rest_api/responds/selectoutbox.rb
174
+ - lib/kave_rest_api/responds/send.rb
175
+ - lib/kave_rest_api/version.rb
176
+ homepage: https://github.com/mm580486/kave_rest_api/
177
+ licenses:
178
+ - MIT
179
+ metadata: {}
180
+ post_install_message:
181
+ rdoc_options: []
182
+ require_paths:
183
+ - lib
184
+ required_ruby_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: 1.9.3
189
+ required_rubygems_version: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ requirements: []
195
+ rubyforge_project:
196
+ rubygems_version: 2.5.1
197
+ signing_key:
198
+ specification_version: 4
199
+ summary: Ruby gem to send and receive SMS via kavenegar API(rest)
200
+ test_files: []