Sha256: b92c7f8d0ba3f95365699671ae9b6a5c2ab210b664f75b932b2bba495c48136d

Contents?: true

Size: 743 Bytes

Versions: 129

Compression:

Stored size: 743 Bytes

Contents

class ApiClient < ApplicationRecord

  belongs_to :user
  accepts_nested_attributes_for :user
  validates_presence_of :description

  #TODO add JWT expiration and api client invalidation
  #TODO rename toke to encoded_token
  before_create :set_encoded_token!

  def verify!
    self.class.invalid_token! 'Invalid Api Client' if Mumukit::Auth::Token.decode(token).uid != user.uid
  end

  def self.verify_token!(token)
    client = find_by token: token
    invalid_token! 'No Api Client found for Token' unless client
    client.verify!
  end

  private

  def set_encoded_token!
    self.token = Mumukit::Auth::Token.encode user.uid, {}
  end

  def self.invalid_token!(message)
    raise Mumukit::Auth::InvalidTokenError, message
  end

end

Version data entries

129 entries across 129 versions & 2 rubygems

Version Path
mumuki-domain-9.23.0 app/models/api_client.rb
mumuki-domain-9.22.1 app/models/api_client.rb
mumuki-domain-9.22.0 app/models/api_client.rb
mumuki-domain-9.21.0 app/models/api_client.rb
mumuki-domain-9.20.0 app/models/api_client.rb
mumuki-domain-9.19.0 app/models/api_client.rb
mumuki-domain-9.18.0 app/models/api_client.rb
mumuki-domain-9.17.0 app/models/api_client.rb
mumuki-domain-9.16.0 app/models/api_client.rb
mumuki-domain-9.15.0 app/models/api_client.rb
mumuki-domain-9.14.1 app/models/api_client.rb
mumuki-domain-9.14.0 app/models/api_client.rb
mumuki-domain-9.13.1 app/models/api_client.rb
mumuki-domain-9.13.0 app/models/api_client.rb
mumuki-domain-9.12.0 app/models/api_client.rb
mumuki-domain-9.11.0 app/models/api_client.rb
mumuki-domain-9.10.0 app/models/api_client.rb
mumuki-domain-9.9.0 app/models/api_client.rb
mumuki-domain-9.8.1 app/models/api_client.rb
mumuki-domain-9.8.0 app/models/api_client.rb