Class: Kidsmin::ChurchIntegration

Inherits:
ApplicationRecord show all
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

Class Method Details

.currentObject



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_tokenObject



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

Returns:

  • (Boolean)


11
12
13
# File 'app/models/kidsmin/church_integration.rb', line 11

def pco_connected?
  self[:access_token].present?
end

#refresh_tokenObject



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

Returns:

  • (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