ToolJet/app/commands/authorize_api_request.rb

35 lines
618 B
Ruby
Raw Normal View History

2021-03-31 16:18:42 +00:00
class AuthorizeApiRequest
2021-04-29 06:41:23 +00:00
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')
2021-03-31 16:18:42 +00:00
end
2021-04-29 06:41:23 +00:00
nil
end
2021-03-31 16:18:42 +00:00
end