about summary refs log tree commit diff
path: root/app/controllers/concerns/access_token_tracking_concern.rb
blob: cf60cfb995ba4995420f62300a60e7374207a886 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# frozen_string_literal: true

module AccessTokenTrackingConcern
  extend ActiveSupport::Concern

  ACCESS_TOKEN_UPDATE_FREQUENCY = 24.hours.freeze

  included do
    before_action :update_access_token_last_used
  end

  private

  def update_access_token_last_used
    doorkeeper_token.update_last_used(request) if access_token_needs_update?
  end

  def access_token_needs_update?
    doorkeeper_token.present? && (doorkeeper_token.last_used_at.nil? || doorkeeper_token.last_used_at < ACCESS_TOKEN_UPDATE_FREQUENCY.ago)
  end
end