mini_program 0.11.0 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 33eb5ef599719b87fa6f41511075a9a63583aa0a09b7889cf198fff54b23ad9d
4
- data.tar.gz: 5c7384b8a9b7f8b87476e3a4f9664a2011106eadbb02e4727ae3ee5a40074396
3
+ metadata.gz: c4c2f36cd55294e1243e4933d5e7c2dccb8b81e7bf857fcdde911bdde0555a8b
4
+ data.tar.gz: f1be92b59ef4de422756391b3e7545c651b9950ddfd4cab825f20818e0636389
5
5
  SHA512:
6
- metadata.gz: 5926356805f658544866838ac1f5222aeb463fe97d35d8fd2c1bfec31f9238f5089b530c8e8b594e4328c1ff527372aa24d4116878f792ad180e6323dd6cd638
7
- data.tar.gz: 3d6a4b3e3250b1639c53c211854c41616d24959f830816e70a2d097db58d7eef8b0323d9e1cd6bab48ac9819cb3f11886c984d7810cfc712570c1fdac50f37a5
6
+ metadata.gz: 15518ae9daa62e14d63b513432f2e707d012eeea7123d54f62e54913c623adad1301c614455e5ec198940cf4c0cabf3695b6d2d2bd3e4ce0effc125014156f8b
7
+ data.tar.gz: e6511f4151d75cdd0622ebb5cf932ba0aae5cc3bcd621a46792672056f7d53b9ac05aceff84ad6dfd89b54f87de697b3ffdd745dbdfd27122b0379fbbb5c2fde
data/README.md CHANGED
@@ -71,11 +71,11 @@ end
71
71
  # page: "/pages/index/index"
72
72
  # data:
73
73
  # thing2:
74
- # value: "%{title}"
75
- # phrase4:
76
- # value: "%{state}"
77
- # thing1:
78
- # value: "%{detail}"
74
+ # value: "%{title}"
75
+ # phrase4:
76
+ # value: "%{state}"
77
+ # thing1:
78
+ # value: "%{detail}"
79
79
 
80
80
  msg = MiniProgram::Msg.new(:progress, {
81
81
  title: "测试",
@@ -1,4 +1,7 @@
1
1
  module MiniProgram
2
- class ApplicationController < ActionController::Base
2
+ class ApplicationController < ApplicationController
3
+ include AbstractController::Helpers
4
+ include ActionController::Cookies
5
+
3
6
  end
4
7
  end
@@ -2,18 +2,22 @@ require_dependency "mini_program/application_controller"
2
2
 
3
3
  module MiniProgram
4
4
  class WechatController < ApplicationController
5
- skip_forgery_protection
5
+ skip_forgery_protection if respond_to? :skip_forgery_protection
6
6
 
7
7
  # POST /wechat/login
8
8
  def login
9
9
  result = MiniProgram::Client.new.login(params["code"])
10
10
 
11
11
  if result.success?
12
- cookies.signed[:open_id] = result.data["openid"]
12
+ cookies.signed[:openid] = result.data["openid"]
13
13
  cookies.signed[:session_key] = result.data["session_key"]
14
+ cookies.signed[:options] = params[:options].permit!
15
+
16
+ after_mp_login if respond_to? :after_mp_login
17
+
14
18
  render json: current_mp_user
15
19
  else
16
- render json: { errors: result.errors }
20
+ render json: { error: result.error }
17
21
  end
18
22
  end
19
23
 
@@ -27,7 +31,7 @@ module MiniProgram
27
31
 
28
32
  render json: result.data
29
33
  else
30
- render json: { errors: result.errors }
34
+ render json: { error: result.error }
31
35
  end
32
36
  end
33
37
  end
@@ -1,10 +1,21 @@
1
1
 
2
2
 
3
- ActionController::Base.class_eval do
3
+ ActionController::Base.class_eval do
4
4
  def current_mp_user
5
5
  MiniProgram::User.new(open_id: cookies.signed[:open_id],
6
6
  nickname: cookies.signed[:nickname],
7
7
  phone_num: cookies.signed[:phone_num],
8
- session_key: cookies.signed[:session_key])
8
+ session_key: cookies.signed[:session_key],
9
+ options: cookies.signed[:options])
10
+ end
11
+ end
12
+
13
+ ActionController::API.class_eval do
14
+ def current_mp_user
15
+ MiniProgram::User.new(open_id: cookies.signed[:open_id],
16
+ nickname: cookies.signed[:nickname],
17
+ phone_num: cookies.signed[:phone_num],
18
+ session_key: cookies.signed[:session_key],
19
+ options: cookies.signed[:options])
9
20
  end
10
21
  end
@@ -20,7 +20,7 @@ module MiniProgram
20
20
  end
21
21
 
22
22
  def get_access_token(fresh: false)
23
- access_token = redis.get(access_token_store_key)
23
+ access_token = Rails.cache.read(access_token_store_key)
24
24
 
25
25
  if access_token.present? && !fresh
26
26
  return MiniProgram::ServiceResult.new(success: true, data: {access_token: access_token})
@@ -29,7 +29,11 @@ module MiniProgram
29
29
  result = request_access_token
30
30
 
31
31
  if result.success?
32
- redis.setex access_token_store_key, 1.5.hours.to_i, result.data["access_token"]
32
+ # redis.setex access_token_store_key, 1.5.hours.to_i, result.data["access_token"]
33
+ Rails.cache.write(access_token_store_key,
34
+ result.data["access_token"],
35
+ expires_in: 1.5.hours.to_i,
36
+ race_condition_ttl: 10)
33
37
  end
34
38
 
35
39
  yield result if block_given?
@@ -58,7 +62,7 @@ module MiniProgram
58
62
  api: #{api}
59
63
  error: #{result}
60
64
  ERROR
61
- return MiniProgram::ServiceResult.new(success: false, errors: result, message: result["errmsg"])
65
+ return MiniProgram::ServiceResult.new(success: false, error: result, message: result["errmsg"])
62
66
  end
63
67
 
64
68
  MiniProgram::ServiceResult.new(success: true, data: result)
@@ -80,13 +84,13 @@ module MiniProgram
80
84
 
81
85
  result = JSON.parse(response)
82
86
 
83
- if result["errcode"].to_s != "0"
87
+ if result["errcode"] && result["errcode"].to_s != "0"
84
88
  logger.error <<~ERROR
85
89
  Get session key failed.
86
90
  api: #{api}
87
91
  result: #{result}
88
92
  ERROR
89
- return MiniProgram::ServiceResult.new(errors: result, message: result["errmsg"])
93
+ return MiniProgram::ServiceResult.new(error: result, message: result["errmsg"])
90
94
  end
91
95
 
92
96
  MiniProgram::ServiceResult.new(success: true, data: result)
@@ -111,7 +115,7 @@ module MiniProgram
111
115
 
112
116
  if result["errcode"].to_s != "0"
113
117
  msg_logger.error {"{params: #{payload}, response: #{result}}"}
114
- return MiniProgram::ServiceResult.new(success: false, errors: result["errmsg"])
118
+ return MiniProgram::ServiceResult.new(success: false, error: result)
115
119
  end
116
120
 
117
121
  msg_logger.info {"{params: #{payload}, response: #{result}}"}
@@ -140,7 +144,7 @@ module MiniProgram
140
144
 
141
145
  if result["errcode"].to_s != "0"
142
146
  msg_logger.error {"{params: #{payload}, response: #{result}}"}
143
- return MiniProgram::ServiceResult.new(success: false, errors: result["errmsg"])
147
+ return MiniProgram::ServiceResult.new(success: false, error: result["errmsg"])
144
148
  end
145
149
 
146
150
  msg_logger.info { "{params: #{payload}, response: #{result}}"}
@@ -221,10 +225,6 @@ module MiniProgram
221
225
  @logger ||= MiniProgram::RLogger.make("mini_program")
222
226
  end
223
227
 
224
- def redis
225
- @redis ||= Redis.current
226
- end
227
-
228
228
  def access_token_store_key
229
229
  @access_token_store_key ||= "mp-#{appid}-access-token"
230
230
  end
@@ -234,4 +234,4 @@ module MiniProgram
234
234
  end
235
235
 
236
236
  end
237
- end
237
+ end
@@ -1,14 +1,16 @@
1
1
 
2
2
  class MiniProgram::User
3
- attr_accessor :open_id, :nickname, :phone_num, :session_key
4
-
3
+ attr_accessor :open_id, :nickname, :phone_num, :session_key, :options
4
+
5
5
  def initialize(open_id: :blank_open_id,
6
6
  nickname: :blank_nickname,
7
7
  phone_num: :blank_phone_num,
8
- session_key: :blank_session_key)
8
+ session_key: :blank_session_key,
9
+ options: nil)
9
10
  @open_id = open_id
10
11
  @nickname = nickname
11
12
  @phone_num = phone_num
12
13
  @session_key = session_key
14
+ @options = options
13
15
  end
14
16
  end
@@ -1,3 +1,3 @@
1
1
  module MiniProgram
2
- VERSION = '0.11.0'
2
+ VERSION = '1.0.2'
3
3
  end
@@ -1,7 +1,7 @@
1
1
  module MiniProgram
2
2
  class ServiceResult
3
3
  attr_accessor :success,
4
- :errors,
4
+ :error,
5
5
  :data,
6
6
  :message,
7
7
  :message_type
@@ -9,13 +9,13 @@ module MiniProgram
9
9
  delegate :[], :[]=, to: :data
10
10
 
11
11
  def initialize(success: false,
12
- errors: nil,
12
+ error: nil,
13
13
  message: nil,
14
14
  message_type: nil,
15
15
  data: {})
16
16
  self.success = success
17
17
  self.data = (data.presence || {}).with_indifferent_access
18
- self.errors = errors.is_a?(Array) ? errors : [errors]
18
+ self.error = error
19
19
  self.message = message
20
20
  self.message_type = message_type
21
21
  end
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: 0.11.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-09 00:00:00.000000000 Z
11
+ date: 2021-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 6.1.4
27
- - !ruby/object:Gem::Dependency
28
- name: redis
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
27
  - !ruby/object:Gem::Dependency
42
28
  name: mocha
43
29
  requirement: !ruby/object:Gem::Requirement