Module: Model::Agency
- Extended by:
- ActiveSupport::Concern
- Included in:
- Wechat::Agency
- Defined in:
- app/models/wechat/model/agency.rb
Constant Summary collapse
- SERVICE_TYPE =
{ '0' => 'WechatRead', '1' => 'WechatRead', '2' => 'WechatPublic' }.freeze
Instance Method Summary collapse
- #api ⇒ Object
- #init_app ⇒ Object
- #refresh_access_token ⇒ Object
- #store_access_token(r) ⇒ Object
- #store_info ⇒ Object
- #store_info_later ⇒ Object
Instance Method Details
#api ⇒ Object
33 34 35 36 |
# File 'app/models/wechat/model/agency.rb', line 33 def api return @api if defined? @api @api = Wechat::Api::Public.new(self) end |
#init_app ⇒ Object
38 39 40 41 |
# File 'app/models/wechat/model/agency.rb', line 38 def init_app app || build_app app.save end |
#refresh_access_token ⇒ Object
43 44 45 46 |
# File 'app/models/wechat/model/agency.rb', line 43 def refresh_access_token r = platform.api.(appid, refresh_token) store_access_token(r) end |
#store_access_token(r) ⇒ Object
61 62 63 64 65 66 67 |
# File 'app/models/wechat/model/agency.rb', line 61 def store_access_token(r) self.access_token = r['authorizer_access_token'] self.access_token_expires_at = Time.current + r['expires_in'].to_i self.refresh_token = r['authorizer_refresh_token'] self.func_infos = r['func_info'].map { |i| i.dig('funcscope_category', 'id') } if r['func_info'].is_a?(Array) self.save end |
#store_info ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'app/models/wechat/model/agency.rb', line 52 def store_info r = platform.api.(appid) self.assign_attributes r.slice('nick_name', 'head_img', 'user_name', 'principal_name', 'qrcode_url', 'business_info') self.alias_name = r['alias'] self.service_type = r.dig('service_type_info', 'id') self.verify_type = r.dig('verify_type_info', 'id') self.save end |
#store_info_later ⇒ Object
48 49 50 |
# File 'app/models/wechat/model/agency.rb', line 48 def store_info_later AgencyJob.perform_later(self) end |