Fix beer likes and db client

This commit is contained in:
Aaron William Po
2023-02-13 13:08:05 -05:00
parent 80261a713b
commit 7240cb0792
6 changed files with 36 additions and 17 deletions

View File

@@ -9,10 +9,6 @@ const useUser = () => {
error,
isLoading,
} = useSWR('/api/users/current', async (url) => {
if (!document.cookie) {
throw new Error('Not logged in.');
}
const response = await fetch(url);
if (!response.ok) {

16
pages/account/index.tsx Normal file
View File

@@ -0,0 +1,16 @@
import Layout from '@/components/ui/Layout';
import { NextPage } from 'next';
interface AccountPageProps {}
const AccountPage: NextPage<AccountPageProps> = () => {
return (
<Layout>
<div>
<h1>Account Page</h1>
</div>
</Layout>
);
};
export default AccountPage;

View File

@@ -24,7 +24,7 @@ const sendLikeRequest = async (
throw new ServerError('Could not find a beer post with that id', 404);
}
const alreadyLiked = await findBeerPostLikeById(id);
const alreadyLiked = await findBeerPostLikeById(beer.id, user.id);
const jsonResponse = {
success: true as const,
@@ -50,11 +50,7 @@ const router = createRouter<
router.post(
getCurrentUser,
validateRequest({
querySchema: z.object({
id: z.string().uuid(),
}),
}),
validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }),
sendLikeRequest,
);

View File

@@ -10,7 +10,7 @@ const LogoutPage: NextPage = () => {
router.reload();
router.push('/');
}, [router]);
return <div />;
return null;
};
export default LogoutPage;

View File

@@ -1,11 +1,17 @@
import { PrismaClient } from '@prisma/client';
const globalForPrisma = global as unknown as { prisma: PrismaClient };
const DBClient = {
instance: new PrismaClient(),
instance:
globalForPrisma.prisma ||
new PrismaClient({
log: ['info', 'warn'],
}),
};
export type IDBClient = typeof DBClient;
Object.freeze(DBClient);
if (process.env.NODE_ENV !== 'production') {
globalForPrisma.prisma = DBClient.instance;
}
export default DBClient;

View File

@@ -1,6 +1,11 @@
import DBClient from '@/prisma/DBClient';
const findBeerPostLikeById = async (id: string) =>
DBClient.instance.beerPostLike.findUnique({ where: { id } });
const findBeerPostLikeById = async (beerPostId: string, userId: string) =>
DBClient.instance.beerPostLike.findFirst({
where: {
beerPostId,
userId,
},
});
export default findBeerPostLikeById;