from auth.auth_view import RegisteredAuthorizedView from flask_apispec import marshal_with, doc from users.services.users_validator import UsersValidator from labels.labels_permissions_service import LabelPermissionsService from services.users_repository import UsersRepository from labels.schemas import label_permissions_artist_response @doc(tags=['LabelPermissionsArtists']) class LabelPermissionsArtistsView(RegisteredAuthorizedView): label_permissions_service = LabelPermissionsService() users_repository = UsersRepository() users_validator = UsersValidator() @doc(description='Retrieve label permissions artists') @marshal_with( label_permissions_artist_response(many=True), code=200, description="List of artists for label" ) @marshal_with(None, code=403, description='User does not have access to the label.') @marshal_with(None, code=404, description='Label not found') def get(self, label_id): self.users_validator.validate_label_exist(label_id) self.permissions.can_access_label(label_id) return self.label_permissions_service.get_label_permissions_artists(label_id)