Files
spotizerr-dev/routes/search.py
cool.gitter.choco 48db9a1606 added spot fallback
2025-01-26 08:39:06 -06:00

37 lines
1.1 KiB
Python

from flask import Blueprint, jsonify, request
from routes.utils.search import search # Renamed import
search_bp = Blueprint('search', __name__)
@search_bp.route('/search', methods=['GET'])
def handle_search():
try:
# Get query parameters
query = request.args.get('q', '')
search_type = request.args.get('type', 'track')
limit = int(request.args.get('limit', 10))
# Validate parameters
if not query:
return jsonify({'error': 'Missing search query'}), 400
valid_types = ['track', 'album', 'artist', 'playlist', 'episode']
if search_type not in valid_types:
return jsonify({'error': 'Invalid search type'}), 400
# Perform the search
raw_results = search(
query=query,
search_type=search_type,
limit=limit
)
return jsonify({
'data': raw_results,
'error': None
})
except ValueError as e:
return jsonify({'error': str(e)}), 400
except Exception as e:
return jsonify({'error': 'Internal server error'}), 500