fix reponses in playlist when creating

This commit is contained in:
grimhilt 2023-07-31 01:51:15 +02:00
parent c14747a205
commit 171c7c551e

View File

@ -1,6 +1,6 @@
from flask import Blueprint, request, Response, jsonify from flask import Blueprint, request, Response, jsonify
from flask_cors import cross_origin from flask_cors import cross_origin
from ..models import Playlist, PlaylistFile from ..models import Playlist, PlaylistFile, File
from .. import db from .. import db
from datetime import datetime from datetime import datetime
from sqlalchemy.sql import func from sqlalchemy.sql import func
@ -15,12 +15,9 @@ def create():
db.session.flush() db.session.flush()
db.session.commit() db.session.commit()
print(new_playlist.as_dict()) res = new_playlist.as_dict()
return Response( res['last_modified'] = res['last_modified'].isoformat()
response=new_playlist.as_dict(), return jsonify(res)
status=200,
mimetype="application/json"
)
@playlist.route('/', methods=["GET"]) @playlist.route('/', methods=["GET"])
def list(): def list():
@ -36,23 +33,13 @@ def list():
@playlist.route('/<int:playlist_id>', methods=["GET"]) @playlist.route('/<int:playlist_id>', methods=["GET"])
def get_playlist(playlist_id): def get_playlist(playlist_id):
query = db.session.query(\ query = db.session.query(Playlist).filter(Playlist.id == playlist_id).first()
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( \ files = []
Playlist.name, \ for playlist_file in query.playlist_files:
func.group_concat(Playlist.id == PlaylistFile.playlist_id) \ file = playlist_file.file.as_dict()
) \ file['position'] = playlist_file.position
.outerjoin(PlaylistFile, Playlist.id == PlaylistFile.playlist_id) \ file['seconds'] = playlist_file.seconds
.filter(Playlist.id == playlist_id) \ files.append(file)
.group_by(Playlist.id) \
.first()
return jsonify({'name': query[0], 'files': query[1]})
return jsonify({'name': query.name, 'files': files})