From 7eb5c6b9039e9b124531b122fe89042bccd026d4 Mon Sep 17 00:00:00 2001 From: grimhilt Date: Tue, 1 Aug 2023 21:24:07 +0200 Subject: [PATCH] use dao playlist --- src/api/abl/playlist.py | 28 ++++++++++++++-------------- src/api/dao/Playlist.py | 14 ++++++++++++++ 2 files changed, 28 insertions(+), 14 deletions(-) create mode 100644 src/api/dao/Playlist.py diff --git a/src/api/abl/playlist.py b/src/api/abl/playlist.py index ec813f0..3d3e4d0 100644 --- a/src/api/abl/playlist.py +++ b/src/api/abl/playlist.py @@ -4,6 +4,8 @@ from ..models import Playlist, PlaylistFile, File from .. import db from datetime import datetime from sqlalchemy.sql import func +from ..dao.Playlist import PlaylistDao +from screen.ScreenManager import ScreenManager playlist = Blueprint('playlist', __name__) @@ -33,21 +35,12 @@ def list(): @playlist.route('/', methods=["GET"]) def get_playlist(playlist_id): - query = db.session.query(Playlist).filter(Playlist.id == playlist_id).first() - - 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}) + (query, files) = PlaylistDao.get_playlist(playlist_id) + return jsonify({'id': query.id, 'name': query.name, 'files': files}) @playlist.route('/', methods=["POST"]) def add_file(playlist_id): data = request.get_json() - print(data) new_playlist_file = PlaylistFile( \ playlist_id=playlist_id, \ file_id=data['file_id'], \ @@ -64,7 +57,6 @@ def add_file(playlist_id): @playlist.route('//order', methods=["POST"]) def change_order(playlist_id): data = request.get_json() - print(data) db.session.query(PlaylistFile) \ .filter(PlaylistFile.file_id == data['file_id']) \ .filter(PlaylistFile.playlist_id == playlist_id) \ @@ -76,12 +68,20 @@ def change_order(playlist_id): @playlist.route('//remove_file', methods=["POST"]) def remove_file(playlist_id): data = request.get_json() - print(data) query = db.session.query(PlaylistFile) \ .filter(PlaylistFile.file_id == data['file_id']) \ .filter(PlaylistFile.playlist_id == playlist_id) \ .first() - print(query) db.session.delete(query) db.session.commit() return jsonify(success=True) + +@playlist.route('//update', methods=["POST"]) +def update(playlist_id): + data = request.get_json() + db.session.query(Playlist) \ + .filter(Playlist.id == playlist_id) \ + .update({'name': data['name']}) + db.session.commit() + + return jsonify(success=True) diff --git a/src/api/dao/Playlist.py b/src/api/dao/Playlist.py new file mode 100644 index 0000000..bff345f --- /dev/null +++ b/src/api/dao/Playlist.py @@ -0,0 +1,14 @@ +from .. import db +from ..models import Playlist, PlaylistFile, File + +class PlaylistDao: + def get_playlist(playlist_id): + query = db.session.query(Playlist).filter(Playlist.id == playlist_id).first() + 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 (query, files)