magfa 0.1.0.dev.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 0022214bdf0352cac24f17ff5cd8f0b6e0877a23bb17937e72f53981ba47b422
4
+ data.tar.gz: 7fe305eb8e02cb3d41e614b9ed895e726af29a5a3dbf33faef5a5f0ef4285bb6
5
+ SHA512:
6
+ metadata.gz: 2d13ba5b0b7faea26d94f004fc3cab9eb2f0c58b355cffcf8a30d4f66a432b551797deb251c5e7cffcfe62c4f00c8c892314b70fcea016ad6be7a185e20da1e6
7
+ data.tar.gz: 2644fcfb800669d2169180c2351c20954e828fe96a50e150cc1807fddf636a63423aa7e4f262c1d383ca1037900d5ede392d5e78dfafdc469eb69a22e29ae7fd
@@ -0,0 +1,41 @@
1
+
2
+ %w(faraday faraday_middleware validatable i18n magfa/version).each do |dependency|
3
+ require dependency
4
+ end
5
+ require 'magfa/meaning'
6
+ begin
7
+ require "pry"
8
+ rescue LoadError
9
+
10
+ end
11
+ module Magfa
12
+ I18n.config.available_locales = :en
13
+
14
+
15
+
16
+ class Error < StandardError; end
17
+
18
+ class << self
19
+ attr_accessor :configuration
20
+ end
21
+
22
+ def self.configure
23
+ self.configuration ||= Configuration.new
24
+ yield configuration
25
+ end
26
+
27
+ class Configuration
28
+ attr_accessor :username,:password,:domain,:api,:debugmode
29
+
30
+ def initialize
31
+
32
+ end
33
+
34
+ end
35
+
36
+ end
37
+
38
+
39
+ %w(version core/request helper enqueue/enqueue credit/credit).each do |identify|
40
+ require_relative "magfa/#{identify}"
41
+ end
@@ -0,0 +1,16 @@
1
+ module Magfa
2
+ require 'uri'
3
+ class CoreRequest
4
+ def initialize(args = {})
5
+ config = Magfa.configuration
6
+ raise(ArgumentError, 'not a valid configuration class') if config.nil? || config.domain.nil? || config.password.nil? || config.username.nil?
7
+ @API_URL = "http://sms.magfa.com/"
8
+ @TYPE='magfaHttpService'
9
+ @DOMAIN=config.domain
10
+ @USERNAME=config.username
11
+ @PASSWORD=config.password
12
+
13
+ @FORMAT= config.format rescue 'json'
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,6 @@
1
+
2
+ module Magfa
3
+
4
+ require_relative "./response"
5
+ require_relative "./send"
6
+ end
@@ -0,0 +1,29 @@
1
+ module Magfa
2
+ class CreditResponse
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
+
16
+ def full_message_errors
17
+ # return Magfa::ERRORS[@response.to_s]
18
+ end
19
+
20
+ private
21
+
22
+ def perform_validation
23
+ raise ArgumentError, 'not a valid response' if @response.nil?
24
+ @valid = (@response.to_i == 200)
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -0,0 +1,37 @@
1
+ module Magfa
2
+ class CreditSend < Magfa::CoreRequest
3
+ attr_reader :response,:config
4
+
5
+ def initialize(args = {})
6
+ super
7
+ @response = CreditResponse.new
8
+ end
9
+
10
+ def valid_message?
11
+ @valid_message
12
+ end
13
+
14
+ def valid_receptor?
15
+ @valid_receptor
16
+ end
17
+
18
+ def call
19
+ connection = Faraday.new(url: "#{@API_URL}") do |faraday|
20
+ faraday.adapter Faraday.default_adapter
21
+ faraday.response @FORMAT.to_sym
22
+ end
23
+
24
+ response = connection.get(@TYPE,
25
+ service: 'getCredit',
26
+ domain: @DOMAIN,
27
+ username: @USERNAME,
28
+ password: @PASSWORD,
29
+ )
30
+ @response.validate(response.body)
31
+ end
32
+
33
+
34
+ end
35
+ end
36
+
37
+ # VNjdKnRmADIQmxke
@@ -0,0 +1,6 @@
1
+
2
+ module Magfa
3
+
4
+ require_relative "./response"
5
+ require_relative "./send"
6
+ end
@@ -0,0 +1,29 @@
1
+ module Magfa
2
+ class EnqueueResponse
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
+
16
+ def full_message_errors
17
+ # return Magfa::ERRORS[@response.to_s]
18
+ end
19
+
20
+ private
21
+
22
+ def perform_validation
23
+ raise ArgumentError, 'not a valid response' if @response.nil?
24
+ @valid = (@response.to_i == 200)
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -0,0 +1,73 @@
1
+ module Magfa
2
+ class EnqueueSend < Magfa::CoreRequest
3
+ include Validatable
4
+ attr_accessor :to, :message,:from,:mclass,:chkMessageId,:encoding,:UDH
5
+ attr_reader :response,:config
6
+ validates_presence_of :message
7
+ validates_presence_of :to
8
+ validates_presence_of :from
9
+
10
+ validates_length_of :message, :within => 1..140
11
+ validates_format_of :from, :with => /^\d*$/, :if => Proc.new { !from.nil? }
12
+ validates_format_of :to, :with => /^\d*$/, :if => Proc.new { !to.nil? }
13
+
14
+
15
+ def initialize(args = {})
16
+ super
17
+ @to = args.fetch(:to)
18
+
19
+ if @to.kind_of?(Array)
20
+ @valid_receptor= false if @to.length > 200
21
+ @to = @to.join(',')
22
+ end
23
+
24
+ @to = @to.ctsd
25
+ @mclass = args.fetch(:mclass,nil)
26
+ @message = args.fetch(:message)
27
+ @message = @message.ctsd if args.fetch(:standard_digit,false)
28
+ @chkMessageId = args.fetch(:chkMessageId,nil)
29
+ @encoding = args.fetch(:encoding,nil)
30
+ @UDH = args.fetch(:UDH,nil)
31
+
32
+ @from = args.fetch(:from)
33
+
34
+ @response = EnqueueResponse.new
35
+ @message_size=@message.multibyte? ? 268:612
36
+ @valid_message= (@message.length > @message_size ) ? false:true
37
+ end
38
+
39
+ def valid_message?
40
+ @valid_message
41
+ end
42
+
43
+ def valid_receptor?
44
+ @valid_receptor
45
+ end
46
+
47
+ def call
48
+ connection = Faraday.new(url: "#{@API_URL}") do |faraday|
49
+ faraday.adapter Faraday.default_adapter
50
+ faraday.response @FORMAT.to_sym
51
+ end
52
+
53
+ response = connection.get(@TYPE,
54
+ domain: @DOMAIN,
55
+ username: @USERNAME,
56
+ password: @PASSWORD,
57
+ to: @to ,
58
+ service: 'Enqueue',
59
+ message: URI::encode(@message),
60
+ mclass: @mclass,
61
+ chkMessageId: @chkMessageId,
62
+ encoding: @encoding,
63
+ UDH: @UDH,
64
+ from: @from
65
+ )
66
+ @response.validate(response.body)
67
+ end
68
+
69
+
70
+ end
71
+ end
72
+
73
+ # VNjdKnRmADIQmxke
@@ -0,0 +1,4 @@
1
+ module Magfa
2
+ require_relative "./helpers/convertor"
3
+ require_relative "./helpers/validator"
4
+ end
@@ -0,0 +1,38 @@
1
+ module Magfa
2
+ module NumberHelper
3
+ def ctpd
4
+ return self.to_s.tr('0123456789','۰١۲۳۴۵۶۷۸۹')
5
+ end
6
+
7
+ end
8
+
9
+ module StringHelper
10
+
11
+ def ctsd
12
+ return self.to_s.tr('۰١۱۲۳۴۵۶۷۸۹،١٢٣٤٥٦٧٨٩٠','01123456789,1234567890')
13
+ end
14
+
15
+ def ctpd
16
+ return self.to_s.tr('01123456789,','۰١۱۲۳۴۵۶۷۸۹،')
17
+ end
18
+
19
+ def strip_emoji
20
+ str = self.force_encoding('utf-8').encode
21
+ arr_regex=[/[\u{1f600}-\u{1f64f}]/,/[\u{2702}-\u{27b0}]/,/[\u{1f680}-\u{1f6ff}]/,/[\u{24C2}-\u{1F251}]/,/[\u{1f300}-\u{1f5ff}]/]
22
+ arr_regex.each do |regex|
23
+ str = str.gsub regex, ''
24
+ end
25
+ return str
26
+ end
27
+
28
+ end
29
+
30
+ end
31
+
32
+ class Integer
33
+ include Magfa::NumberHelper
34
+ end
35
+
36
+ class String
37
+ include Magfa::StringHelper
38
+ end
@@ -0,0 +1,30 @@
1
+ module Magfa
2
+ module NumberHelper
3
+
4
+ def is_phone?
5
+ return !!self.match(/^(09{1})+([1-3]{1})+(\d{8})$/)
6
+ end
7
+
8
+ end
9
+
10
+ module StringHelper
11
+
12
+ def multibyte?
13
+ chars.count < bytes.count
14
+ end
15
+
16
+ def is_phone?
17
+ return !!self.ctsd.match(/^(09{1})+([1-3]{1})+(\d{8})$/)
18
+ end
19
+
20
+ end
21
+
22
+ end
23
+
24
+ class Integer
25
+ include Magfa::NumberHelper
26
+ end
27
+
28
+ class String
29
+ include Magfa::StringHelper
30
+ end
@@ -0,0 +1,10 @@
1
+ module Magfa
2
+ ERRORS = {
3
+ '1' => 'شماره گیرنده نامعتبر (خالی) است. ',
4
+ '2' => 'شماره فرستنده نامعتبر (خالی) است',
5
+ '3' => 'پارامتر encoding نامعتبراست',
6
+ '4' => ' پارامتر mclass نامعتبر است.',
7
+ '6' => 'پارامتر UDH نامعتبر است.',
8
+
9
+ }
10
+ end
@@ -0,0 +1,3 @@
1
+ module Magfa
2
+ VERSION = "0.1.0.dev.1"
3
+ end
metadata ADDED
@@ -0,0 +1,169 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: magfa
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0.dev.1
5
+ platform: ruby
6
+ authors:
7
+ - Mohammad Mahmoodi
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-12-24 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.17'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.17'
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
+ description: Magfa webService
126
+ email:
127
+ - mm580486@gmail.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - lib/magfa.rb
133
+ - lib/magfa/core/request.rb
134
+ - lib/magfa/credit/credit.rb
135
+ - lib/magfa/credit/response.rb
136
+ - lib/magfa/credit/send.rb
137
+ - lib/magfa/enqueue/enqueue.rb
138
+ - lib/magfa/enqueue/response.rb
139
+ - lib/magfa/enqueue/send.rb
140
+ - lib/magfa/helper.rb
141
+ - lib/magfa/helpers/convertor.rb
142
+ - lib/magfa/helpers/validator.rb
143
+ - lib/magfa/meaning.rb
144
+ - lib/magfa/version.rb
145
+ homepage: https://github.com/mm580486/magfa
146
+ licenses:
147
+ - MIT
148
+ metadata: {}
149
+ post_install_message:
150
+ rdoc_options: []
151
+ require_paths:
152
+ - lib
153
+ required_ruby_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ required_rubygems_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">"
161
+ - !ruby/object:Gem::Version
162
+ version: 1.3.1
163
+ requirements: []
164
+ rubyforge_project:
165
+ rubygems_version: 2.7.6
166
+ signing_key:
167
+ specification_version: 4
168
+ summary: Magfa Wrapper
169
+ test_files: []