37 lines
1.4 KiB
Zig
37 lines
1.4 KiB
Zig
const std = @import("std");
|
|
const jetzig = @import("jetzig");
|
|
const jetquery = @import("jetzig").jetquery;
|
|
const TableRow = @import("../../types.zig").TableRow;
|
|
const dateFmt = @import("../../date_fmt.zig").dateFmt;
|
|
const ordinalFmt = @import("../../ordinal_fmt.zig").ordinalFmt;
|
|
const queries = @import("../../queries.zig");
|
|
|
|
pub fn index(request: *jetzig.Request) !jetzig.View {
|
|
var root = try request.data(.object);
|
|
const artists = try queries.entityQueryResult(request, queries.loadQuery(.artist, .entities), .{});
|
|
|
|
try root.put("artists", artists);
|
|
|
|
return request.render(.ok);
|
|
}
|
|
|
|
pub fn get(id: []const u8, request: *jetzig.Request) !jetzig.View {
|
|
var root = try request.data(.object);
|
|
|
|
const artist = try queries.entityQueryResult(request, queries.loadQuery(.artist, .entity_info), .{id});
|
|
try root.put("artist", artist);
|
|
|
|
const albums = try queries.entityQueryResult(request, queries.loadQuery(.artist, .get_albums), .{id});
|
|
try root.put("albums", albums);
|
|
|
|
const appears = try queries.entityQueryResult(request, queries.loadQuery(.artist, .appears), .{id});
|
|
try root.put("appears", appears);
|
|
|
|
const firstlast = try queries.entityQueryResult(request, queries.loadQuery(.artist, .firstlast), .{id});
|
|
try root.put("firstlast", firstlast);
|
|
|
|
const timescale = try queries.entityQueryResult(request, queries.loadQuery(.artist, .timescale), .{id});
|
|
try root.put("yearly", timescale);
|
|
|
|
return request.render(.ok);
|
|
}
|