Work on artists view

This commit is contained in:
mitteneer 2025-03-09 14:48:07 -04:00
parent 1184677fab
commit 9e2b676aef
3 changed files with 13 additions and 6 deletions

3
.gitignore vendored
View file

@ -5,5 +5,4 @@ static/
.jetzig .jetzig
src/app/database/data.db-journal src/app/database/data.db-journal
src/app/database/old_migrations/ src/app/database/old_migrations/
src/lib/time.h src/lib

View file

@ -47,7 +47,7 @@ pub const Artist = jetquery.Model(
}, },
.{ .{
.relations = .{ .relations = .{
.scrobbles = jetquery.hasMany(.Scrobble, .{}), .scrobbleartists = jetquery.hasMany(.Scrobbleartist, .{}),
.aliases = jetquery.hasMany(.Alias, .{}), .aliases = jetquery.hasMany(.Alias, .{}),
.artistsongs = jetquery.hasMany(.Songartist, .{}), .artistsongs = jetquery.hasMany(.Songartist, .{}),
.mastersongs = jetquery.hasMany(.Mastersong, .{}), .mastersongs = jetquery.hasMany(.Mastersong, .{}),
@ -124,7 +124,7 @@ pub const Scrobble = jetquery.Model(
.relations = .{ .relations = .{
.song = jetquery.belongsTo(.Song, .{}), .song = jetquery.belongsTo(.Song, .{}),
.album = jetquery.belongsTo(.Album, .{}), .album = jetquery.belongsTo(.Album, .{}),
.artists = jetquery.hasMany(.Artist, .{}), .scrobbleartists = jetquery.hasMany(.Scrobbleartist, .{}),
}, },
}, },
); );

View file

@ -24,13 +24,21 @@ pub fn get(id: []const u8, request: *jetzig.Request) !jetzig.View {
try root.put("artist", artist.?.name); try root.put("artist", artist.?.name);
var albums_view = try root.put("albums", .array); 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).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); const albums = try request.repo.all(query);
for (albums) |album| { 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); var album_view = try albums_view.append(.object);
try album_view.put("name", album.album.name); try album_view.put("name", album.album.name);
try album_view.put("url", album.album.id); 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}); //std.log.debug("{s}", .{album.album.name});
} }
return request.render(.ok); return request.render(.ok);