diff --git a/src/app/views/albums.zig b/src/app/views/albums.zig
index 9f363f5..3fbb8ab 100644
--- a/src/app/views/albums.zig
+++ b/src/app/views/albums.zig
@@ -22,7 +22,10 @@ pub fn index(request: *jetzig.Request) !jetzig.View {
\\ORDER BY scrobbles DESC
;
- var albums_jq_result = try request.repo.executeSql(query, .{});
+ var inter_conn = try request.repo.connect();
+ defer inter_conn.release();
+
+ var albums_jq_result = try inter_conn.executeSql(query, .{}, null, request.repo);
defer albums_jq_result.deinit();
const Album = struct { name: []const u8, id: i32, scrobbles: i64 };
@@ -30,6 +33,19 @@ pub fn index(request: *jetzig.Request) !jetzig.View {
while (try albums_jq_result.postgresql.result.next()) |album_row| {
const album = try album_row.to(Album, .{ .dupe = true, .allocator = request.allocator });
var album_view = try albums_view.append(.object);
+ var artist_infos = try album_view.put("artist_info", .array);
+ const artist_data = try jetzig.database.Query(.Artistalbum)
+ .select(.{.id})
+ .where(.{ .album_id = album.id })
+ .include(.artist, .{ .select = .{ .name, .id } })
+ .all(request.repo);
+
+ for (artist_data) |artist| {
+ var artist_info = try artist_infos.append(.object);
+ try artist_info.put("name", artist.artist.name);
+ try artist_info.put("url", artist.artist.id);
+ }
+
try album_view.put("name", album.name);
try album_view.put("url", album.id);
try album_view.put("scrobbles", album.scrobbles);
diff --git a/src/app/views/albums/index.zmpl b/src/app/views/albums/index.zmpl
index 7de3b87..e5536eb 100644
--- a/src/app/views/albums/index.zmpl
+++ b/src/app/views/albums/index.zmpl
@@ -10,6 +10,7 @@
@@ -17,6 +18,11 @@
@for (.albums) |album| {
Name
+Artist(s)
Scrobbles