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