feat(api): add endpoints for retrieving a band's info and its associated stories
This commit is contained in:
parent
66d6168a31
commit
8070e8c555
8
server/api/bands/[id]/index.get.ts
Normal file
8
server/api/bands/[id]/index.get.ts
Normal file
@ -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;
|
||||
});
|
28
server/api/bands/[id]/stories.get.ts
Normal file
28
server/api/bands/[id]/stories.get.ts
Normal file
@ -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,
|
||||
};
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user