Module: Model::App
- Extended by:
- ActiveSupport::Concern
- Included in:
- Dingtalk::App
- Defined in:
- app/models/dingtalk/model/app.rb
Instance Method Summary collapse
- #access_token_valid? ⇒ Boolean
- #api ⇒ Object
- #get_jsapi_ticket ⇒ Object
- #jsapi_ticket_valid? ⇒ Boolean
- #refresh_access_token ⇒ Object
- #refresh_jsapi_ticket ⇒ Object
- #store_access_token(token_hash) ⇒ Object
- #store_jsapi_ticket(ticket_hash) ⇒ Object
Instance Method Details
#access_token_valid? ⇒ Boolean
41 42 43 44 |
# File 'app/models/dingtalk/model/app.rb', line 41 def access_token_valid? return false unless access_token_expires_at.acts_like?(:time) access_token_expires_at > Time.current end |
#api ⇒ Object
21 22 23 24 |
# File 'app/models/dingtalk/model/app.rb', line 21 def api return @api if defined? @api @api = Api::Normal.new(self) end |
#get_jsapi_ticket ⇒ Object
46 47 48 49 50 51 52 |
# File 'app/models/dingtalk/model/app.rb', line 46 def get_jsapi_ticket if jsapi_ticket_valid? jsapi_ticket else refresh_jsapi_ticket end end |
#jsapi_ticket_valid? ⇒ Boolean
54 55 56 57 |
# File 'app/models/dingtalk/model/app.rb', line 54 def jsapi_ticket_valid? return false unless jsapi_ticket_expires_at.acts_like?(:time) jsapi_ticket_expires_at > Time.current end |
#refresh_access_token ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'app/models/dingtalk/model/app.rb', line 26 def refresh_access_token r = api.token if r['access_token'] store_access_token(r) else logger.debug "\e[35m #{r['errmsg']} \e[0m" end end |
#refresh_jsapi_ticket ⇒ Object
59 60 61 62 63 |
# File 'app/models/dingtalk/model/app.rb', line 59 def refresh_jsapi_ticket r = api.jsapi_ticket store_jsapi_ticket(r) jsapi_ticket end |
#store_access_token(token_hash) ⇒ Object
35 36 37 38 39 |
# File 'app/models/dingtalk/model/app.rb', line 35 def store_access_token(token_hash) self.access_token = token_hash['access_token'] self.access_token_expires_at = Time.current + token_hash['expires_in'].to_i self.save end |
#store_jsapi_ticket(ticket_hash) ⇒ Object
65 66 67 68 69 |
# File 'app/models/dingtalk/model/app.rb', line 65 def store_jsapi_ticket(ticket_hash) self.jsapi_ticket = ticket_hash['ticket'] self.jsapi_ticket_expires_at = Time.current + ticket_hash['expires_in'].to_i self.save end |