magfa 0.1.0.dev.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.
- checksums.yaml +7 -0
- data/lib/magfa.rb +41 -0
- data/lib/magfa/core/request.rb +16 -0
- data/lib/magfa/credit/credit.rb +6 -0
- data/lib/magfa/credit/response.rb +29 -0
- data/lib/magfa/credit/send.rb +37 -0
- data/lib/magfa/enqueue/enqueue.rb +6 -0
- data/lib/magfa/enqueue/response.rb +29 -0
- data/lib/magfa/enqueue/send.rb +73 -0
- data/lib/magfa/helper.rb +4 -0
- data/lib/magfa/helpers/convertor.rb +38 -0
- data/lib/magfa/helpers/validator.rb +30 -0
- data/lib/magfa/meaning.rb +10 -0
- data/lib/magfa/version.rb +3 -0
- metadata +169 -0
checksums.yaml
ADDED
@@ -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
|
data/lib/magfa.rb
ADDED
@@ -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,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,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
|
data/lib/magfa/helper.rb
ADDED
@@ -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
|
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: []
|