From 171c7c551e12a18bf115eccc5172acbf4249ed1a Mon Sep 17 00:00:00 2001 From: grimhilt Date: Mon, 31 Jul 2023 01:51:15 +0200 Subject: [PATCH] fix reponses in playlist when creating --- src/api/abl/playlist.py | 37 ++++++++++++------------------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/src/api/abl/playlist.py b/src/api/abl/playlist.py index aca5914..9a8da9f 100644 --- a/src/api/abl/playlist.py +++ b/src/api/abl/playlist.py @@ -1,6 +1,6 @@ from flask import Blueprint, request, Response, jsonify from flask_cors import cross_origin -from ..models import Playlist, PlaylistFile +from ..models import Playlist, PlaylistFile, File from .. import db from datetime import datetime from sqlalchemy.sql import func @@ -15,12 +15,9 @@ def create(): db.session.flush() db.session.commit() - print(new_playlist.as_dict()) - return Response( - response=new_playlist.as_dict(), - status=200, - mimetype="application/json" - ) + res = new_playlist.as_dict() + res['last_modified'] = res['last_modified'].isoformat() + return jsonify(res) @playlist.route('/', methods=["GET"]) def list(): @@ -36,23 +33,13 @@ def list(): @playlist.route('/', methods=["GET"]) def get_playlist(playlist_id): - query = db.session.query(\ - Playlist.name,\ - func.group_concat(PlaylistFile.id).label('files')\ - ).\ - join(PlaylistFile, Playlist.id == PlaylistFile.playlist_id).\ - filter(Playlist.id == playlist_id).\ - group_by(Playlist.id).\ - all() + query = db.session.query(Playlist).filter(Playlist.id == playlist_id).first() - query = db.session.query( \ - Playlist.name, \ - func.group_concat(Playlist.id == PlaylistFile.playlist_id) \ - ) \ - .outerjoin(PlaylistFile, Playlist.id == PlaylistFile.playlist_id) \ - .filter(Playlist.id == playlist_id) \ - .group_by(Playlist.id) \ - .first() - - return jsonify({'name': query[0], 'files': query[1]}) + files = [] + for playlist_file in query.playlist_files: + file = playlist_file.file.as_dict() + file['position'] = playlist_file.position + file['seconds'] = playlist_file.seconds + files.append(file) + return jsonify({'name': query.name, 'files': files})