* unpublish comments+articles by user id in API v1 * Update spec/requests/api/v1/users_spec.rb Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Rely on user_policy instead of before_action method Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
31 lines
806 B
Ruby
31 lines
806 B
Ruby
module Api
|
|
module UsersController
|
|
extend ActiveSupport::Concern
|
|
|
|
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.joins(:profile).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
|
|
|
|
def unpublish
|
|
authorize(@user, :unpublish_all_articles?)
|
|
Moderator::UnpublishAllArticlesWorker.perform_async(params[:id].to_i)
|
|
render head: :ok
|
|
end
|
|
end
|
|
end
|