From 9e2b676aef8b4e6bf9581de43077904c7210643d Mon Sep 17 00:00:00 2001 From: mitteneer Date: Sun, 9 Mar 2025 14:48:07 -0400 Subject: [PATCH] Work on artists view --- .gitignore | 3 +-- src/app/database/Schema.zig | 4 ++-- src/app/views/artists.zig | 12 ++++++++++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 7dbeb15..ea7b5c1 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,4 @@ static/ .jetzig src/app/database/data.db-journal src/app/database/old_migrations/ -src/lib/time.h - +src/lib diff --git a/src/app/database/Schema.zig b/src/app/database/Schema.zig index 84aebf7..55ca850 100644 --- a/src/app/database/Schema.zig +++ b/src/app/database/Schema.zig @@ -47,7 +47,7 @@ pub const Artist = jetquery.Model( }, .{ .relations = .{ - .scrobbles = jetquery.hasMany(.Scrobble, .{}), + .scrobbleartists = jetquery.hasMany(.Scrobbleartist, .{}), .aliases = jetquery.hasMany(.Alias, .{}), .artistsongs = jetquery.hasMany(.Songartist, .{}), .mastersongs = jetquery.hasMany(.Mastersong, .{}), @@ -124,7 +124,7 @@ pub const Scrobble = jetquery.Model( .relations = .{ .song = jetquery.belongsTo(.Song, .{}), .album = jetquery.belongsTo(.Album, .{}), - .artists = jetquery.hasMany(.Artist, .{}), + .scrobbleartists = jetquery.hasMany(.Scrobbleartist, .{}), }, }, ); diff --git a/src/app/views/artists.zig b/src/app/views/artists.zig index 646ccc8..23a5b36 100644 --- a/src/app/views/artists.zig +++ b/src/app/views/artists.zig @@ -24,13 +24,21 @@ pub fn get(id: []const u8, request: *jetzig.Request) !jetzig.View { try root.put("artist", artist.?.name); var albums_view = try root.put("albums", .array); const query = jetzig.database.Query(.Albumartist).include(.album, .{ .select = .{ .name, .id } }).join(.inner, .artist).where(.{ .artist = .{ .id = id } }); + + //const query = jetzig.database.Query(.Albumartist) + // .select(.{ .artist_id, jetquery.sql.count(.album_id) }) + // .groupBy(.{.artist_id}) + // .orderBy(.count__album_id); + const albums = try request.repo.all(query); for (albums) |album| { - const scrobbles = try jetzig.database.Query(.Scrobble).where(.{ .album_id = album.album.id }).count().execute(request.repo); + //const scrobbles = try jetzig.database.Query(.Scrobble).where(.{ .album_id = album.album.id }).count().execute(request.repo); var album_view = try albums_view.append(.object); try album_view.put("name", album.album.name); try album_view.put("url", album.album.id); - try album_view.put("scrobbles", scrobbles); + //try album_view.put("name", album.count__album_id); + //try album_view.put("url", album.count__album_id); + try album_view.put("scrobbles", 6); //std.log.debug("{s}", .{album.album.name}); } return request.render(.ok);