mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-02-16 18:52:06 +00:00
feat: add beer style likes
This commit is contained in:
18
src/services/BeerStyleLike/createBeerStyleLike.ts
Normal file
18
src/services/BeerStyleLike/createBeerStyleLike.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { z } from 'zod';
|
||||
import DBClient from '@/prisma/DBClient';
|
||||
import GetUserSchema from '@/services/User/schema/GetUserSchema';
|
||||
|
||||
interface CreateBeerStyleLikeArgs {
|
||||
beerStyleId: string;
|
||||
user: z.infer<typeof GetUserSchema>;
|
||||
}
|
||||
const createBeerStyleLike = async ({ beerStyleId, user }: CreateBeerStyleLikeArgs) => {
|
||||
return DBClient.instance.beerStyleLike.create({
|
||||
data: {
|
||||
beerStyleId,
|
||||
likedById: user.id,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
export default createBeerStyleLike;
|
||||
16
src/services/BeerStyleLike/findBeerStyleLikeById.ts
Normal file
16
src/services/BeerStyleLike/findBeerStyleLikeById.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import DBClient from '@/prisma/DBClient';
|
||||
|
||||
interface FindBeerStyleLikeByIdArgs {
|
||||
beerStyleId: string;
|
||||
likedById: string;
|
||||
}
|
||||
const findBeerStyleLikeById = async ({
|
||||
beerStyleId,
|
||||
likedById,
|
||||
}: FindBeerStyleLikeByIdArgs) => {
|
||||
return DBClient.instance.beerStyleLike.findFirst({
|
||||
where: { beerStyleId, likedById },
|
||||
});
|
||||
};
|
||||
|
||||
export default findBeerStyleLikeById;
|
||||
10
src/services/BeerStyleLike/getBeerStyleLikeCount.ts
Normal file
10
src/services/BeerStyleLike/getBeerStyleLikeCount.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import DBClient from '@/prisma/DBClient';
|
||||
|
||||
interface GetBeerStyleLikeCountArgs {
|
||||
beerStyleId: string;
|
||||
}
|
||||
const getBeerStyleLikeCount = async ({ beerStyleId }: GetBeerStyleLikeCountArgs) => {
|
||||
return DBClient.instance.beerStyleLike.count({ where: { beerStyleId } });
|
||||
};
|
||||
|
||||
export default getBeerStyleLikeCount;
|
||||
12
src/services/BeerStyleLike/removeBeerStyleLikeById.ts
Normal file
12
src/services/BeerStyleLike/removeBeerStyleLikeById.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import DBClient from '@/prisma/DBClient';
|
||||
|
||||
interface RemoveBeerStyleLikeByIdArgs {
|
||||
beerStyleLikeId: string;
|
||||
}
|
||||
const removeBeerStyleLikeById = async ({
|
||||
beerStyleLikeId,
|
||||
}: RemoveBeerStyleLikeByIdArgs) => {
|
||||
return DBClient.instance.beerStyleLike.delete({ where: { id: beerStyleLikeId } });
|
||||
};
|
||||
|
||||
export default removeBeerStyleLikeById;
|
||||
Reference in New Issue
Block a user