mini_program 1.3.3 → 1.4.0
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 +4 -4
- data/lib/mini_program/client.rb +60 -68
- data/lib/mini_program/failure_result.rb +11 -0
- data/lib/mini_program/logger.rb +18 -0
- data/lib/mini_program/service_result.rb +19 -11
- data/lib/mini_program/success_result.rb +11 -0
- data/lib/mini_program/version.rb +1 -1
- metadata +6 -4
- data/lib/mini_program/r_logger.rb +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 819a9d88d29ed42dffc439ba5686b14c9afad196d9bc8f6068d371ad4d0db22c
|
4
|
+
data.tar.gz: 401802387b27e867b19d97382bf4bac8b18db259d873c1470b925177efe76ed3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f27016f2662ce3b21b435b27db456aa746b36044e3dc06a6fca2f8f140e9c6e138080b0df7a5dd8e9d39c44e59e365890e828871d421b3985e678226e6651ef9
|
7
|
+
data.tar.gz: 847a8165ed9d30d383e5e97de5792d612d0cab70410d16debf6c945b42c199aa1694650a92129aaf10a2cdb534fc2715de2d5bbb031eb9a6fa0bddeccaca97ac
|
data/lib/mini_program/client.rb
CHANGED
@@ -23,8 +23,7 @@ module MiniProgram
|
|
23
23
|
access_token = Rails.cache.read(access_token_store_key)
|
24
24
|
|
25
25
|
if access_token.present? && !fresh
|
26
|
-
return MiniProgram::
|
27
|
-
data: { access_token: access_token },
|
26
|
+
return MiniProgram::SuccessResult.new(data: { access_token: access_token },
|
28
27
|
message: "获取 access token 成功",
|
29
28
|
message_kind: :get_access_token_success)
|
30
29
|
end
|
@@ -62,21 +61,15 @@ module MiniProgram
|
|
62
61
|
result = JSON.parse(response)
|
63
62
|
|
64
63
|
if result["errcode"] && result["errcode"].to_s != "0"
|
65
|
-
|
66
|
-
|
67
|
-
Get access token failed.
|
68
|
-
api: #{api}
|
69
|
-
error: #{result}
|
70
|
-
ERROR
|
64
|
+
MiniProgram::Logger.error do
|
65
|
+
{ action: :request_access_token, params: params, response: result }.to_json
|
71
66
|
end
|
72
67
|
|
73
|
-
MiniProgram::
|
74
|
-
error: result,
|
68
|
+
MiniProgram::FailureResult.new(error: result,
|
75
69
|
message: result["errmsg"],
|
76
70
|
message_kind: :request_access_token_failed)
|
77
71
|
else
|
78
|
-
MiniProgram::
|
79
|
-
data: { access_token: result["access_token"] },
|
72
|
+
MiniProgram::SuccessResult.new(data: { access_token: result["access_token"] },
|
80
73
|
message: "请求 access token 成功",
|
81
74
|
message_kind: :request_access_token_success)
|
82
75
|
end
|
@@ -99,25 +92,20 @@ module MiniProgram
|
|
99
92
|
result = JSON.parse(response)
|
100
93
|
|
101
94
|
if result["errcode"] && result["errcode"].to_s != "0"
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
api: #{api}
|
106
|
-
result: #{result}
|
107
|
-
ERROR
|
95
|
+
MiniProgram::Logger.error do
|
96
|
+
{ action: :login, params: params, response: result }.to_json
|
97
|
+
end
|
108
98
|
|
109
|
-
MiniProgram::
|
110
|
-
error: result,
|
99
|
+
MiniProgram::FailureResult.new(error: result,
|
111
100
|
message: result["errmsg"],
|
112
101
|
message_kind: :login_failed)
|
113
102
|
|
114
103
|
else
|
115
|
-
MiniProgram::
|
116
|
-
data: result,
|
104
|
+
MiniProgram::SuccessResult.new(data: result,
|
117
105
|
message: "小程序登录成功",
|
118
106
|
message_kind: :login_success)
|
119
|
-
end
|
120
107
|
|
108
|
+
end
|
121
109
|
end
|
122
110
|
|
123
111
|
# 发送订阅消息
|
@@ -137,26 +125,22 @@ module MiniProgram
|
|
137
125
|
api = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=#{get_token_result["access_token"]}"
|
138
126
|
result = post(api, payload)
|
139
127
|
|
140
|
-
if result["errcode"].to_s
|
141
|
-
|
142
|
-
|
128
|
+
if result["errcode"].to_s == "0"
|
129
|
+
MiniProgram::Logger.info do
|
130
|
+
{ action: :send_subscribed_message, params: payload, response: result }.to_json
|
143
131
|
end
|
144
132
|
|
145
|
-
MiniProgram::
|
146
|
-
|
147
|
-
|
148
|
-
message_kind: :send_subscribed_message_failed)
|
133
|
+
MiniProgram::SuccessResult.new(data: { msgid: result.data["msgid"] },
|
134
|
+
message: "发送订阅消息成功",
|
135
|
+
message_kind: :send_subscribed_message_success)
|
149
136
|
else
|
150
|
-
|
151
|
-
|
137
|
+
MiniProgram::Logger.error do
|
138
|
+
{ action: :send_subscribed_message, params: payload, response: result }.to_json
|
152
139
|
end
|
153
140
|
|
154
|
-
MiniProgram::
|
155
|
-
|
156
|
-
|
157
|
-
},
|
158
|
-
message: "发送订阅消息成功",
|
159
|
-
message_kind: :send_subscribed_message_success)
|
141
|
+
MiniProgram::FailureResult.new(error: result,
|
142
|
+
message: "发送订阅消息失败",
|
143
|
+
message_kind: :send_subscribed_message_failed)
|
160
144
|
end
|
161
145
|
|
162
146
|
end
|
@@ -181,23 +165,28 @@ module MiniProgram
|
|
181
165
|
mp_template_msg: payload
|
182
166
|
})
|
183
167
|
|
184
|
-
if result["errcode"].to_s
|
185
|
-
|
186
|
-
|
168
|
+
if result["errcode"].to_s == "0"
|
169
|
+
message = "发送统一服务消息成功"
|
170
|
+
|
171
|
+
MiniProgram::Logger.info do
|
172
|
+
{ action: :send_uniform_message, message: message, params: payload, response: result }.to_json
|
187
173
|
end
|
188
174
|
|
189
|
-
MiniProgram::
|
190
|
-
|
191
|
-
message: "发送统一服务消息失败",
|
192
|
-
message_kind: :send_uniform_message_failed)
|
193
|
-
else
|
194
|
-
msg_logger.info { "{params: #{payload}, response: #{result}}" }
|
195
|
-
MiniProgram::ServiceResult.new(success: true,
|
196
|
-
data: result,
|
197
|
-
message: "发送统一服务消息成功",
|
175
|
+
MiniProgram::SuccessResult.new(data: result,
|
176
|
+
message: message,
|
198
177
|
message_kind: :send_uniform_message_success)
|
199
|
-
end
|
200
178
|
|
179
|
+
else
|
180
|
+
message = "发送统一服务消息失败"
|
181
|
+
|
182
|
+
MiniProgram::Logger.error do
|
183
|
+
{ action: :send_uniform_message, message: message, params: payload, response: result }.to_json
|
184
|
+
end
|
185
|
+
|
186
|
+
MiniProgram::FailureResult.new(error: result["errmsg"],
|
187
|
+
message: message,
|
188
|
+
message_kind: :send_uniform_message_failed)
|
189
|
+
end
|
201
190
|
end
|
202
191
|
|
203
192
|
# 获取用户手机号
|
@@ -212,19 +201,24 @@ module MiniProgram
|
|
212
201
|
|
213
202
|
phone_num = JSON.parse(data)["phoneNumber"]
|
214
203
|
|
215
|
-
MiniProgram::
|
216
|
-
success: true,
|
204
|
+
MiniProgram::SuccessResult.new(
|
217
205
|
message: "解密手机号成功",
|
218
206
|
message_kind: :decrypt_phone_number_success,
|
219
207
|
data: {
|
220
208
|
openid: openid,
|
221
209
|
phone_num: phone_num
|
222
|
-
}
|
210
|
+
}
|
211
|
+
)
|
223
212
|
rescue OpenSSL::Cipher::CipherError, ArgumentError => e
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
213
|
+
message = "解密手机号失败"
|
214
|
+
|
215
|
+
MiniProgram::Logger.error do
|
216
|
+
{ action: "decrypt_phone_num", message: message, error: e }.to_json
|
217
|
+
end
|
218
|
+
|
219
|
+
MiniProgram::FailureResult.new(
|
220
|
+
message: message,
|
221
|
+
message_kind: :decrypt_phone_number_failed,
|
228
222
|
error: e
|
229
223
|
)
|
230
224
|
end
|
@@ -256,13 +250,19 @@ module MiniProgram
|
|
256
250
|
result = post(api, params)
|
257
251
|
|
258
252
|
if result["errcode"]
|
259
|
-
|
253
|
+
MiniProgram::Logger.error do
|
254
|
+
{ action: 'generate_code', params: params, response: result }.to_json
|
255
|
+
end
|
256
|
+
|
260
257
|
MiniProgram::ServiceResult.new(success: false,
|
261
258
|
error: result,
|
262
259
|
message: "获取二维码失败",
|
263
260
|
message_kind: :get_unlimited_qrcode_failed)
|
264
261
|
else
|
265
|
-
|
262
|
+
MiniProgram::Logger.info do
|
263
|
+
{ action: 'generate_code', params: params, response: result }.to_json
|
264
|
+
end
|
265
|
+
|
266
266
|
MiniProgram::ServiceResult.new(success: true,
|
267
267
|
data: { image: result },
|
268
268
|
message: "获取二维码成功",
|
@@ -310,17 +310,9 @@ module MiniProgram
|
|
310
310
|
aes.update(Base64::decode64(encrypted_data)) + aes.final
|
311
311
|
end
|
312
312
|
|
313
|
-
def logger
|
314
|
-
@logger ||= MiniProgram::RLogger.make("mini_program")
|
315
|
-
end
|
316
|
-
|
317
313
|
def access_token_store_key
|
318
314
|
@access_token_store_key ||= "mp-#{appid}-access-token"
|
319
315
|
end
|
320
316
|
|
321
|
-
def msg_logger
|
322
|
-
@msg_logger ||= MiniProgram::RLogger.make("wx_msg")
|
323
|
-
end
|
324
|
-
|
325
317
|
end
|
326
318
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
|
2
|
+
class MiniProgram::FailureResult < MiniProgram::ServiceResult
|
3
|
+
def initialize(data: {}, error: nil, message: nil, message_type: nil, message_kind: nil)
|
4
|
+
super(success: false,
|
5
|
+
data: data,
|
6
|
+
error: error,
|
7
|
+
message: message,
|
8
|
+
message_type: message_type,
|
9
|
+
message_kind: message_kind)
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class MiniProgram::Logger
|
2
|
+
|
3
|
+
def self.tags
|
4
|
+
["MiniProgram"]
|
5
|
+
end
|
6
|
+
|
7
|
+
%w{ info warn error fatal }.each do |level|
|
8
|
+
define_singleton_method level do |content, &block|
|
9
|
+
Rails.logger.tagged *tags do
|
10
|
+
if block.present?
|
11
|
+
Rails.logger.send(level, &block)
|
12
|
+
else
|
13
|
+
Rails.logger.send(level, content)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -10,11 +10,11 @@ module MiniProgram
|
|
10
10
|
delegate :[], :[]=, to: :data
|
11
11
|
|
12
12
|
def initialize(success: false,
|
13
|
+
data: {},
|
13
14
|
error: nil,
|
14
15
|
message: nil,
|
15
16
|
message_type: nil,
|
16
|
-
message_kind: nil
|
17
|
-
data: {})
|
17
|
+
message_kind: nil)
|
18
18
|
|
19
19
|
self.success = success
|
20
20
|
self.data = (data.presence || {}).with_indifferent_access
|
@@ -40,9 +40,9 @@ module MiniProgram
|
|
40
40
|
self
|
41
41
|
end
|
42
42
|
|
43
|
-
def
|
44
|
-
if message_type.present?
|
45
|
-
message_type.to_sym
|
43
|
+
def message_type
|
44
|
+
if @message_type.present?
|
45
|
+
@message_type.to_sym
|
46
46
|
elsif success?
|
47
47
|
:notice
|
48
48
|
else
|
@@ -50,14 +50,22 @@ module MiniProgram
|
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
+
def message_kind_prefix
|
54
|
+
"mini_program_"
|
55
|
+
end
|
56
|
+
|
57
|
+
def message_kind
|
58
|
+
"#{message_kind_prefix}#{@message_kind}"
|
59
|
+
end
|
60
|
+
|
53
61
|
def as_json(options = nil)
|
54
62
|
{
|
55
|
-
success
|
56
|
-
data
|
57
|
-
message
|
58
|
-
message_type:
|
59
|
-
message_kind
|
60
|
-
error
|
63
|
+
success: success,
|
64
|
+
data: data,
|
65
|
+
message: message,
|
66
|
+
message_type: message_type,
|
67
|
+
message_kind: message_kind,
|
68
|
+
error: error,
|
61
69
|
}
|
62
70
|
end
|
63
71
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
|
2
|
+
class MiniProgram::SuccessResult < MiniProgram::ServiceResult
|
3
|
+
def initialize(data: {}, error: nil, message: nil, message_type: nil, message_kind: nil)
|
4
|
+
super(success: true,
|
5
|
+
data: data,
|
6
|
+
error: error,
|
7
|
+
message: message,
|
8
|
+
message_type: message_type,
|
9
|
+
message_kind: message_kind)
|
10
|
+
end
|
11
|
+
end
|
data/lib/mini_program/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mini_program
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -74,10 +74,12 @@ files:
|
|
74
74
|
- lib/mini_program.rb
|
75
75
|
- lib/mini_program/client.rb
|
76
76
|
- lib/mini_program/engine.rb
|
77
|
+
- lib/mini_program/failure_result.rb
|
78
|
+
- lib/mini_program/logger.rb
|
77
79
|
- lib/mini_program/msg.rb
|
78
|
-
- lib/mini_program/r_logger.rb
|
79
80
|
- lib/mini_program/request_result.rb
|
80
81
|
- lib/mini_program/service_result.rb
|
82
|
+
- lib/mini_program/success_result.rb
|
81
83
|
- lib/mini_program/user.rb
|
82
84
|
- lib/mini_program/version.rb
|
83
85
|
- lib/tasks/mini_program_tasks.rake
|
@@ -103,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
105
|
- !ruby/object:Gem::Version
|
104
106
|
version: '0'
|
105
107
|
requirements: []
|
106
|
-
rubygems_version: 3.3.
|
108
|
+
rubygems_version: 3.3.7
|
107
109
|
signing_key:
|
108
110
|
specification_version: 4
|
109
111
|
summary: a engine for develop mini program
|
@@ -1,34 +0,0 @@
|
|
1
|
-
module MiniProgram
|
2
|
-
class RLogger
|
3
|
-
def initialize
|
4
|
-
raise Exceptions::InitializeDenied.new("please use 'RLogger.make' instead of 'RLogger.new'")
|
5
|
-
end
|
6
|
-
|
7
|
-
class << self
|
8
|
-
def make(given_filename)
|
9
|
-
filename = log_filename(given_filename)
|
10
|
-
|
11
|
-
# 如果已经存在日志对象,则返回已有的日志对象
|
12
|
-
logger = Logger.new(filename)
|
13
|
-
ActiveSupport::TaggedLogging.new(logger)
|
14
|
-
end
|
15
|
-
|
16
|
-
def log_filename(given_filename)
|
17
|
-
return STDOUT if ENV["RAILS_LOG_TO_STDOUT"].present?
|
18
|
-
|
19
|
-
if given_filename.class.in? [String, Symbol]
|
20
|
-
unless given_filename.end_with? ".log"
|
21
|
-
given_filename = "#{given_filename}.log"
|
22
|
-
end
|
23
|
-
|
24
|
-
Rails.root.join("log/#{given_filename}")
|
25
|
-
elsif given_filename.respond_to? :to_path
|
26
|
-
given_filename.to_path
|
27
|
-
else
|
28
|
-
raise Exception::UnsupportedParamType.new("\"log filename parameter must be a String type or a Symbol\"")
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
34
|
-
end
|