Class: Kidsmin::ChurchIntegration
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Kidsmin::ChurchIntegration
- Defined in:
- app/models/kidsmin/church_integration.rb
Constant Summary collapse
- TOKEN_TYPES =
%w[personal oauth].freeze
Class Method Summary collapse
Instance Method Summary collapse
- #access_token ⇒ Object
- #access_token=(value) ⇒ Object
- #pco_connected? ⇒ Boolean
- #refresh_token ⇒ Object
- #refresh_token=(value) ⇒ Object
- #token_expired? ⇒ Boolean
- #update_tokens!(access:, refresh:, expires_in: nil) ⇒ Object
Class Method Details
.current ⇒ Object
7 8 9 |
# File 'app/models/kidsmin/church_integration.rb', line 7 def self.current first_or_initialize(token_type: "oauth") end |
Instance Method Details
#access_token ⇒ Object
19 20 21 |
# File 'app/models/kidsmin/church_integration.rb', line 19 def access_token Kidsmin::Encryption.decrypt(self[:access_token]) end |
#access_token=(value) ⇒ Object
23 24 25 |
# File 'app/models/kidsmin/church_integration.rb', line 23 def access_token=(value) self[:access_token] = Kidsmin::Encryption.encrypt(value) end |
#pco_connected? ⇒ Boolean
11 12 13 |
# File 'app/models/kidsmin/church_integration.rb', line 11 def pco_connected? self[:access_token].present? end |
#refresh_token ⇒ Object
27 28 29 |
# File 'app/models/kidsmin/church_integration.rb', line 27 def refresh_token Kidsmin::Encryption.decrypt(self[:refresh_token]) end |
#refresh_token=(value) ⇒ Object
31 32 33 |
# File 'app/models/kidsmin/church_integration.rb', line 31 def refresh_token=(value) self[:refresh_token] = Kidsmin::Encryption.encrypt(value) end |
#token_expired? ⇒ Boolean
15 16 17 |
# File 'app/models/kidsmin/church_integration.rb', line 15 def token_expired? expires_at.present? && expires_at <= Time.current end |
#update_tokens!(access:, refresh:, expires_in: nil) ⇒ Object
35 36 37 38 39 40 |
# File 'app/models/kidsmin/church_integration.rb', line 35 def update_tokens!(access:, refresh:, expires_in: nil) self.access_token = access self.refresh_token = refresh self.expires_at = expires_in ? Time.current + expires_in.seconds : nil save! end |