hensei-api/app/controllers/api/v1/collection_controller.rb

34 lines
1 KiB
Ruby

module Api
module V1
class CollectionController < ApiController
before_action :set_target_user
before_action :check_collection_access
# GET /api/v1/users/:user_id/collection/counts
# Returns total counts for all collection entity types
def counts
render json: {
characters: @target_user.collection_characters.count,
weapons: @target_user.collection_weapons.count,
summons: @target_user.collection_summons.count,
artifacts: @target_user.collection_artifacts.count
}
end
private
def set_target_user
@target_user = User.find(params[:user_id])
rescue ActiveRecord::RecordNotFound
render json: { error: "User not found" }, status: :not_found
end
def check_collection_access
return if @target_user.nil?
unless @target_user.collection_viewable_by?(current_user)
render json: { error: "You do not have permission to view this collection" }, status: :forbidden
end
end
end
end
end