mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-06 06:48:21 +00:00
34 lines
618 B
Ruby
34 lines
618 B
Ruby
class AuthorizeApiRequest
|
|
prepend SimpleCommand
|
|
|
|
def initialize(headers = {})
|
|
@headers = headers
|
|
end
|
|
|
|
def call
|
|
user
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :headers
|
|
|
|
def user
|
|
@user ||= User.find(decoded_auth_token[:user_id]) if decoded_auth_token
|
|
@user || errors.add(:token, 'Invalid token') && nil
|
|
end
|
|
|
|
def decoded_auth_token
|
|
@decoded_auth_token ||= JsonWebToken.decode(http_auth_header)
|
|
end
|
|
|
|
def http_auth_header
|
|
if headers['Authorization'].present?
|
|
return headers['Authorization'].split(' ').last
|
|
else
|
|
errors.add(:token, 'Missing token')
|
|
end
|
|
|
|
nil
|
|
end
|
|
end
|