diff --git a/server/app/api/playlist.py b/server/app/api/playlist.py index f6d20dc0..ef069760 100644 --- a/server/app/api/playlist.py +++ b/server/app/api/playlist.py @@ -5,13 +5,13 @@ Contains all the playlist routes. from flask import Blueprint, request from app import instances, api from app.lib import playlistlib +from app import models playlist_bp = Blueprint("playlist", __name__, url_prefix="/") @playlist_bp.route("/playlists", methods=["GET"]) def get_all_playlists(): - print(api.PLAYLISTS) playlists = [] for playlist in api.PLAYLISTS: @@ -24,11 +24,22 @@ def get_all_playlists(): @playlist_bp.route("/playlist/new", methods=["POST"]) def create_playlist(): data = request.get_json() - playlist = {"name": data["name"], "description": [], "tracks": []} - instances.playlist_instance.insert_playlist(playlist) - return {"msg": "success"} + try: + p_in_db = instances.playlist_instance.get_playlist_by_name(playlist["name"]) + + if p_in_db: + raise Exception("Playlist already exists.") + except Exception as e: + return {"error": str(e)}, 409 + + upsert_id = instances.playlist_instance.insert_playlist(playlist) + p = instances.playlist_instance.get_playlist_by_id(upsert_id) + + api.PLAYLISTS.append(models.Playlist(p)) + + return {"msg": "Playlist created successfully."}, 201 @playlist_bp.route("/playlist//add", methods=["POST"])