Sha256: 5987b9d6e1169fb1f0e903f9f640b033359785c3789438d7b7ad2de014535d8c

Contents?: true

Size: 926 Bytes

Versions: 2

Compression:

Stored size: 926 Bytes

Contents

module CanvasOauth
  class Authorization < ActiveRecord::Base
    validates :canvas_user_id, :token, :last_used_at, presence: true

    def self.cache_token(token, user_id, tool_consumer_instance_guid)
      create(
        token: token,
        canvas_user_id: user_id,
        last_used_at: Time.now,
        tool_consumer_instance_guid: tool_consumer_instance_guid
      )
    end

    def self.fetch_token(user_id, tool_consumer_instance_guid)
      user_tokens = where(canvas_user_id: user_id, tool_consumer_instance_guid: tool_consumer_instance_guid).order("created_at DESC")
      if canvas_auth = user_tokens.first
        canvas_auth.update_attribute(:last_used_at, Time.now)
        return canvas_auth.token
      end
    end

    def self.clear_tokens(user_id, tool_consumer_instance_guid)
      where(canvas_user_id: user_id, tool_consumer_instance_guid: tool_consumer_instance_guid).destroy_all
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
canvas_oauth_engine-1.0.1 app/models/canvas_oauth/authorization.rb
canvas_oauth_engine-1.0.0 app/models/canvas_oauth/authorization.rb