refactor(api/utils): add story query helper function
to avoid having to write the same `populate` calls over and over
This commit is contained in:
		
							parent
							
								
									bef6e79317
								
							
						
					
					
						commit
						dd9fcaf5ae
					
				
							
								
								
									
										23
									
								
								lib/server/dbHelpers/storyQuerier.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								lib/server/dbHelpers/storyQuerier.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | |||||||
|  | import type { H3Event, EventHandlerRequest } from "h3"; | ||||||
|  | import { Challenge } from "~/models/challenges/gen"; | ||||||
|  | import { Story } from "~/models/stories"; | ||||||
|  | export default async function (ev: H3Event<EventHandlerRequest>) { | ||||||
|  | 	const id = parseInt(getRouterParam(ev, "id") as string); | ||||||
|  | 	const chapterIndex = ev.context.chapterIndex; | ||||||
|  | 	if (isNaN(id) || isNaN(chapterIndex)) | ||||||
|  | 		throw createError({ | ||||||
|  | 			statusCode: 404, | ||||||
|  | 			message: "Not found.", | ||||||
|  | 		}); | ||||||
|  | 	const story = await Story.findById(id) | ||||||
|  | 		.populate("author", "username profile blocked") | ||||||
|  | 		.populate("chapters.bands") | ||||||
|  | 		.populate({ | ||||||
|  | 			path: "ficmas", | ||||||
|  | 			populate: { path: "wisher", select: "_id username" }, | ||||||
|  | 		}) | ||||||
|  | 		.populate({ path: "challenge", model: Challenge }) | ||||||
|  | 		.exec(); | ||||||
|  | 	if (!story) throw createError({ statusCode: 404, message: "Not found." }); | ||||||
|  | 	return story; | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user