diff --git a/server/api/bands/[id]/index.get.ts b/server/api/bands/[id]/index.get.ts new file mode 100644 index 0000000..951f985 --- /dev/null +++ b/server/api/bands/[id]/index.get.ts @@ -0,0 +1,8 @@ +import { Band } from "~/models/band"; + +export default eventHandler(async (ev) => { + const id = parseInt(getRouterParam(ev, "id") as string); + const band = await Band.findById(id).exec(); + + return band; +}); diff --git a/server/api/bands/[id]/stories.get.ts b/server/api/bands/[id]/stories.get.ts new file mode 100644 index 0000000..6c64b59 --- /dev/null +++ b/server/api/bands/[id]/stories.get.ts @@ -0,0 +1,28 @@ +import listQuerier from "~/lib/server/dbHelpers/listQuerier"; +import { Band } from "~/models/band"; +import { Story } from "~/models/stories"; + +export default eventHandler(async (event) => { + const params = getRouterParams(event); + const query = getQuery(event); + let band = await Band.findById(params.id); + if (!band) { + throw createError({ statusCode: 404, message: "not found." }); + } + let skipAmt = 20 * (parseInt((query.page as string) || "1") - 1) - 1; + if (skipAmt < 0) skipAmt = 0; + let stories = await listQuerier( + { + "chapters.bands": { + $in: [parseInt(params["id"])], + }, + }, + event.context, + ); /* */ + console.log(skipAmt); + return { + ...band.toObject(), + stories: stories /* .slice(skipAmt, skipAmt + 20 + 1) */, + total: stories.length, + }; +});