Files
the-biergarten-app/src/services/BeerPost/getAllBeerPosts.ts
Aaron William Po 2ee12d351f cleanup
2023-10-07 13:27:01 -04:00

37 lines
979 B
TypeScript

import DBClient from '@/prisma/DBClient';
import BeerPostQueryResult from '@/services/BeerPost/schema/BeerPostQueryResult';
import { z } from 'zod';
const prisma = DBClient.instance;
interface GetAllBeerPostsArgs {
pageNum: number;
pageSize: number;
}
const getAllBeerPosts = ({
pageNum,
pageSize,
}: GetAllBeerPostsArgs): Promise<z.infer<typeof BeerPostQueryResult>[]> => {
return prisma.beerPost.findMany({
select: {
id: true,
name: true,
ibu: true,
abv: true,
description: true,
createdAt: true,
updatedAt: true,
style: { select: { name: true, id: true, description: true } },
brewery: { select: { name: true, id: true } },
postedBy: { select: { id: true, username: true } },
beerImages: { select: { path: true, caption: true, id: true, alt: true } },
},
take: pageSize,
skip: (pageNum - 1) * pageSize,
orderBy: { createdAt: 'desc' },
});
};
export default getAllBeerPosts;