docbrown/app/controllers/api/v0/users_controller.rb
Mac Siri 3b32b29937 Update core API endpoints to support access_token (#3644)
* Update specs for doorkeeper test

* Add bang

* Create #authenticate

* Create /api/articles/ endpoint

* Update specs

* Update me.json.jbuilder

* Fix typo and spacing

* Support pagination for #me

* Update #authenticate! to support cookies

* Make per_page a param

* Disable method-complexity check

* Enable refresh_token

* Create /api/users/me endpoint
2019-08-08 15:55:23 -03:00

40 lines
1.2 KiB
Ruby

module Api
module V0
class UsersController < ApiController
before_action :authenticate!, only: %i[me]
def index
if !user_signed_in? || less_than_one_day_old?(current_user)
usernames = %w[ben jess peter maestromac andy liana]
@users = User.where(username: usernames)
return
end
if params[:state] == "follow_suggestions"
@users = Suggester::Users::Recent.new(current_user).suggest
elsif params[:state] == "sidebar_suggestions"
given_tag = params[:tag]
@users = Suggester::Users::Sidebar.new(current_user, given_tag).suggest.sample(3)
end
end
def show
@user = if params[:id] == "by_username"
User.find_by(username: params[:url])
else
User.find(params[:id])
end
end
def me; end
private
def less_than_one_day_old?(user)
range = 1.day.ago.beginning_of_day..Time.current
user_identity_age = user.github_created_at || user.twitter_created_at || 8.days.ago
# last one is a fallback in case both are nil
range.cover? user_identity_age
end
end
end
end