Skip to content

Instantly share code, notes, and snippets.

@promisepreston
Last active September 8, 2019 06:11
Show Gist options
  • Save promisepreston/6cebf1580e1225dec8429a1b9d92a47c to your computer and use it in GitHub Desktop.
Save promisepreston/6cebf1580e1225dec8429a1b9d92a47c to your computer and use it in GitHub Desktop.
# app/services/authorize_api_request.rb
class AuthorizeApiRequest
def initialize(headers = {})
@headers = headers
end
def call
{ user: 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment