from flask import Blueprint from flask_apispec import doc, marshal_with, use_kwargs from http import HTTPStatus from src.db.users.visits import get_visits_query from src.schemas.users import visits as serializers from src.utils import auth as auth_util blueprint = Blueprint("users_visits", __name__) @blueprint.route("/users/visits/", methods=["GET"]) @doc("Get a list of most visited tracks/playlists/etc for a user.") @use_kwargs(serializers.UsersVisits.Request, location="query") @marshal_with(serializers.UsersVisits.Response(many=True), code=HTTPStatus.OK, apply=True) @marshal_with(None, code=HTTPStatus.UNAUTHORIZED, description="Authentication failed") @marshal_with(None, code=HTTPStatus.BAD_REQUEST, description="Bad request") def get_users_visits(**data): user_id = auth_util.get_user().user_id result = get_visits_query(user_id, **data) return result.all()