28 lines
796 B
Ruby
28 lines
796 B
Ruby
module Api
|
|
module V0
|
|
class UsersController < ApiController
|
|
before_action :authenticate!, only: %i[me]
|
|
before_action -> { doorkeeper_authorize! :public }, only: :me, if: -> { doorkeeper_token }
|
|
|
|
SHOW_ATTRIBUTES_FOR_SERIALIZATION = %i[
|
|
id username name summary twitter_username github_username website_url
|
|
location created_at profile_image registered
|
|
].freeze
|
|
|
|
def show
|
|
relation = User.select(SHOW_ATTRIBUTES_FOR_SERIALIZATION)
|
|
|
|
@user = if params[:id] == "by_username"
|
|
relation.find_by!(username: params[:url])
|
|
else
|
|
relation.find(params[:id])
|
|
end
|
|
not_found unless @user.registered
|
|
end
|
|
|
|
def me
|
|
render :show
|
|
end
|
|
end
|
|
end
|
|
end
|