from flask import Blueprint, request, jsonify import logging from music.api.decorators import login_or_jwt, spotify_link_required import music.db.database as database from spotframework.engine.playlistengine import PlaylistEngine from spotframework.model.uri import Uri blueprint = Blueprint('spotify_api', __name__) logger = logging.getLogger(__name__) @blueprint.route('/sort', methods=['POST']) @login_or_jwt @spotify_link_required def sort(auth=None, user=None): request_json = request.get_json() net = database.get_authed_spotify_network(user) engine = PlaylistEngine(net) reverse = request_json.get('reverse', False) if 'uri' in request_json: try: uri = Uri(request_json['uri']) engine.reorder_playlist_by_added_date(uri=uri, reverse=reverse) except ValueError: return jsonify({'error': "malformed uri provided"}), 400 elif 'playlist_name' in request_json: engine.reorder_playlist_by_added_date(name=request_json.get('playlist_name'), reverse=reverse) else: return jsonify({'error': "no uris provided"}), 400 return jsonify({'message': 'sorted', 'status': 'success'}), 200