mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-02-16 10:42:08 +00:00
Update: change identifiers to cuid
This commit is contained in:
@@ -38,7 +38,7 @@ const LoginForm = () => {
|
|||||||
await mutate!();
|
await mutate!();
|
||||||
toast.remove(loadingToast);
|
toast.remove(loadingToast);
|
||||||
toast.success('Logged in!');
|
toast.success('Logged in!');
|
||||||
await router.push(`/user/current`);
|
await router.push(`/users/current`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
toast.remove(loadingToast);
|
toast.remove(loadingToast);
|
||||||
createErrorToast(error);
|
createErrorToast(error);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { NextApiRequest } from 'next';
|
|||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
|
|
||||||
export const BasicUserInfoSchema = z.object({
|
export const BasicUserInfoSchema = z.object({
|
||||||
id: z.string().uuid(),
|
id: z.string().cuid(),
|
||||||
username: z.string(),
|
username: z.string(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ const useUser = () => {
|
|||||||
|
|
||||||
const parsedPayload = GetUserSchema.safeParse(parsed.data.payload);
|
const parsedPayload = GetUserSchema.safeParse(parsed.data.payload);
|
||||||
|
|
||||||
|
console.log(parsedPayload)
|
||||||
if (!parsedPayload.success) {
|
if (!parsedPayload.success) {
|
||||||
throw new Error(parsedPayload.error.message);
|
throw new Error(parsedPayload.error.message);
|
||||||
}
|
}
|
||||||
@@ -46,6 +47,7 @@ const useUser = () => {
|
|||||||
return parsedPayload.data;
|
return parsedPayload.data;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
return { user, isLoading, error: error as unknown, mutate };
|
return { user, isLoading, error: error as unknown, mutate };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -85,14 +85,14 @@ const router = createRouter<
|
|||||||
|
|
||||||
router
|
router
|
||||||
.delete(
|
.delete(
|
||||||
validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }),
|
validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }),
|
||||||
getCurrentUser,
|
getCurrentUser,
|
||||||
checkIfCommentOwner,
|
checkIfCommentOwner,
|
||||||
deleteComment,
|
deleteComment,
|
||||||
)
|
)
|
||||||
.put(
|
.put(
|
||||||
validateRequest({
|
validateRequest({
|
||||||
querySchema: z.object({ id: z.string().uuid() }),
|
querySchema: z.object({ id: z.string().cuid() }),
|
||||||
bodySchema: CreateCommentValidationSchema,
|
bodySchema: CreateCommentValidationSchema,
|
||||||
}),
|
}),
|
||||||
getCurrentUser,
|
getCurrentUser,
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ const router = createRouter<
|
|||||||
router.post(
|
router.post(
|
||||||
validateRequest({
|
validateRequest({
|
||||||
bodySchema: CreateCommentValidationSchema,
|
bodySchema: CreateCommentValidationSchema,
|
||||||
querySchema: z.object({ id: z.string().uuid() }),
|
querySchema: z.object({ id: z.string().cuid() }),
|
||||||
}),
|
}),
|
||||||
getCurrentUser,
|
getCurrentUser,
|
||||||
createComment,
|
createComment,
|
||||||
@@ -88,7 +88,7 @@ router.post(
|
|||||||
router.get(
|
router.get(
|
||||||
validateRequest({
|
validateRequest({
|
||||||
querySchema: z.object({
|
querySchema: z.object({
|
||||||
id: z.string().uuid(),
|
id: z.string().cuid(),
|
||||||
page_size: z.coerce.number().int().positive(),
|
page_size: z.coerce.number().int().positive(),
|
||||||
page_num: z.coerce.number().int().positive(),
|
page_num: z.coerce.number().int().positive(),
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -70,12 +70,12 @@ const router = createRouter<
|
|||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
getCurrentUser,
|
getCurrentUser,
|
||||||
validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }),
|
validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }),
|
||||||
sendLikeRequest,
|
sendLikeRequest,
|
||||||
);
|
);
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }),
|
validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }),
|
||||||
getLikeCount,
|
getLikeCount,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ const router = createRouter<
|
|||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
getCurrentUser,
|
getCurrentUser,
|
||||||
validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }),
|
validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }),
|
||||||
checkIfLiked,
|
checkIfLiked,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ const getBeerRecommendationsRequest = async (
|
|||||||
router.get(
|
router.get(
|
||||||
validateRequest({
|
validateRequest({
|
||||||
querySchema: z.object({
|
querySchema: z.object({
|
||||||
id: z.string().uuid(),
|
id: z.string().cuid(),
|
||||||
page_num: z.string().regex(/^[0-9]+$/),
|
page_num: z.string().regex(/^[0-9]+$/),
|
||||||
page_size: z.string().regex(/^[0-9]+$/),
|
page_size: z.string().regex(/^[0-9]+$/),
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ const router = createRouter<
|
|||||||
router.post(
|
router.post(
|
||||||
validateRequest({
|
validateRequest({
|
||||||
bodySchema: CreateCommentValidationSchema,
|
bodySchema: CreateCommentValidationSchema,
|
||||||
querySchema: z.object({ id: z.string().uuid() }),
|
querySchema: z.object({ id: z.string().cuid() }),
|
||||||
}),
|
}),
|
||||||
getCurrentUser,
|
getCurrentUser,
|
||||||
createComment,
|
createComment,
|
||||||
@@ -98,7 +98,7 @@ router.post(
|
|||||||
router.get(
|
router.get(
|
||||||
validateRequest({
|
validateRequest({
|
||||||
querySchema: z.object({
|
querySchema: z.object({
|
||||||
id: z.string().uuid(),
|
id: z.string().cuid(),
|
||||||
page_size: z.coerce.number().int().positive(),
|
page_size: z.coerce.number().int().positive(),
|
||||||
page_num: z.coerce.number().int().positive(),
|
page_num: z.coerce.number().int().positive(),
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -83,12 +83,12 @@ const router = createRouter<
|
|||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
getCurrentUser,
|
getCurrentUser,
|
||||||
validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }),
|
validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }),
|
||||||
sendLikeRequest,
|
sendLikeRequest,
|
||||||
);
|
);
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }),
|
validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }),
|
||||||
getLikeCount,
|
getLikeCount,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ router.get(
|
|||||||
getCurrentUser,
|
getCurrentUser,
|
||||||
validateRequest({
|
validateRequest({
|
||||||
querySchema: z.object({
|
querySchema: z.object({
|
||||||
id: z.string().uuid(),
|
id: z.string().cuid(),
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
checkIfLiked,
|
checkIfLiked,
|
||||||
|
|||||||
@@ -87,14 +87,14 @@ const router = createRouter<
|
|||||||
|
|
||||||
router
|
router
|
||||||
.delete(
|
.delete(
|
||||||
validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }),
|
validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }),
|
||||||
getCurrentUser,
|
getCurrentUser,
|
||||||
checkIfCommentOwner,
|
checkIfCommentOwner,
|
||||||
deleteComment,
|
deleteComment,
|
||||||
)
|
)
|
||||||
.put(
|
.put(
|
||||||
validateRequest({
|
validateRequest({
|
||||||
querySchema: z.object({ id: z.string().uuid() }),
|
querySchema: z.object({ id: z.string().cuid() }),
|
||||||
bodySchema: CreateCommentValidationSchema,
|
bodySchema: CreateCommentValidationSchema,
|
||||||
}),
|
}),
|
||||||
getCurrentUser,
|
getCurrentUser,
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ router.put(
|
|||||||
getCurrentUser,
|
getCurrentUser,
|
||||||
validateRequest({
|
validateRequest({
|
||||||
bodySchema: EditUserSchema,
|
bodySchema: EditUserSchema,
|
||||||
querySchema: z.object({ id: z.string().uuid() }),
|
querySchema: z.object({ id: z.string().cuid() }),
|
||||||
}),
|
}),
|
||||||
checkIfUserCanEditUser,
|
checkIfUserCanEditUser,
|
||||||
editUser,
|
editUser,
|
||||||
|
|||||||
6
src/pages/users/[id].tsx
Normal file
6
src/pages/users/[id].tsx
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import { FC } from "react"
|
||||||
|
|
||||||
|
const UserInfoPage: FC = () => null
|
||||||
|
|
||||||
|
|
||||||
|
export default UserInfoPage
|
||||||
@@ -13,7 +13,7 @@ datasource db {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model User {
|
model User {
|
||||||
id String @id @default(uuid())
|
id String @id @default(cuid())
|
||||||
username String @unique
|
username String @unique
|
||||||
firstName String
|
firstName String
|
||||||
lastName String
|
lastName String
|
||||||
@@ -36,7 +36,7 @@ model User {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model BeerPost {
|
model BeerPost {
|
||||||
id String @id @default(uuid())
|
id String @id @default(cuid())
|
||||||
name String
|
name String
|
||||||
ibu Float
|
ibu Float
|
||||||
abv Float
|
abv Float
|
||||||
@@ -55,7 +55,7 @@ model BeerPost {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model BeerPostLike {
|
model BeerPostLike {
|
||||||
id String @id @default(uuid())
|
id String @id @default(cuid())
|
||||||
beerPost BeerPost @relation(fields: [beerPostId], references: [id], onDelete: Cascade)
|
beerPost BeerPost @relation(fields: [beerPostId], references: [id], onDelete: Cascade)
|
||||||
beerPostId String
|
beerPostId String
|
||||||
likedBy User @relation(fields: [likedById], references: [id], onDelete: Cascade)
|
likedBy User @relation(fields: [likedById], references: [id], onDelete: Cascade)
|
||||||
@@ -65,7 +65,7 @@ model BeerPostLike {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model BreweryPostLike {
|
model BreweryPostLike {
|
||||||
id String @id @default(uuid())
|
id String @id @default(cuid())
|
||||||
breweryPost BreweryPost @relation(fields: [breweryPostId], references: [id], onDelete: Cascade)
|
breweryPost BreweryPost @relation(fields: [breweryPostId], references: [id], onDelete: Cascade)
|
||||||
breweryPostId String
|
breweryPostId String
|
||||||
likedBy User @relation(fields: [likedById], references: [id], onDelete: Cascade)
|
likedBy User @relation(fields: [likedById], references: [id], onDelete: Cascade)
|
||||||
@@ -75,7 +75,7 @@ model BreweryPostLike {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model BeerComment {
|
model BeerComment {
|
||||||
id String @id @default(uuid())
|
id String @id @default(cuid())
|
||||||
rating Int
|
rating Int
|
||||||
beerPost BeerPost @relation(fields: [beerPostId], references: [id], onDelete: Cascade)
|
beerPost BeerPost @relation(fields: [beerPostId], references: [id], onDelete: Cascade)
|
||||||
beerPostId String
|
beerPostId String
|
||||||
@@ -87,7 +87,7 @@ model BeerComment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model BeerType {
|
model BeerType {
|
||||||
id String @id @default(uuid())
|
id String @id @default(cuid())
|
||||||
name String
|
name String
|
||||||
createdAt DateTime @default(now()) @db.Timestamptz(3)
|
createdAt DateTime @default(now()) @db.Timestamptz(3)
|
||||||
updatedAt DateTime? @updatedAt @db.Timestamptz(3)
|
updatedAt DateTime? @updatedAt @db.Timestamptz(3)
|
||||||
@@ -97,7 +97,7 @@ model BeerType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model Location {
|
model Location {
|
||||||
id String @id @default(uuid())
|
id String @id @default(cuid())
|
||||||
city String
|
city String
|
||||||
stateOrProvince String?
|
stateOrProvince String?
|
||||||
country String?
|
country String?
|
||||||
@@ -109,7 +109,7 @@ model Location {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model BreweryPost {
|
model BreweryPost {
|
||||||
id String @id @default(uuid())
|
id String @id @default(cuid())
|
||||||
name String
|
name String
|
||||||
location Location @relation(fields: [locationId], references: [id])
|
location Location @relation(fields: [locationId], references: [id])
|
||||||
locationId String @unique
|
locationId String @unique
|
||||||
@@ -126,7 +126,7 @@ model BreweryPost {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model BreweryComment {
|
model BreweryComment {
|
||||||
id String @id @default(uuid())
|
id String @id @default(cuid())
|
||||||
rating Int
|
rating Int
|
||||||
breweryPost BreweryPost @relation(fields: [breweryPostId], references: [id], onDelete: Cascade)
|
breweryPost BreweryPost @relation(fields: [breweryPostId], references: [id], onDelete: Cascade)
|
||||||
breweryPostId String
|
breweryPostId String
|
||||||
@@ -138,7 +138,7 @@ model BreweryComment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model BeerImage {
|
model BeerImage {
|
||||||
id String @id @default(uuid())
|
id String @id @default(cuid())
|
||||||
beerPost BeerPost @relation(fields: [beerPostId], references: [id], onDelete: Cascade)
|
beerPost BeerPost @relation(fields: [beerPostId], references: [id], onDelete: Cascade)
|
||||||
beerPostId String
|
beerPostId String
|
||||||
path String
|
path String
|
||||||
@@ -151,7 +151,7 @@ model BeerImage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model BreweryImage {
|
model BreweryImage {
|
||||||
id String @id @default(uuid())
|
id String @id @default(cuid())
|
||||||
breweryPost BreweryPost @relation(fields: [breweryPostId], references: [id], onDelete: Cascade)
|
breweryPost BreweryPost @relation(fields: [breweryPostId], references: [id], onDelete: Cascade)
|
||||||
breweryPostId String
|
breweryPostId String
|
||||||
path String
|
path String
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import APIResponseValidationSchema from '@/validation/APIResponseValidationSchem
|
|||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
|
|
||||||
const BeerCommentValidationSchemaWithId = CreateCommentValidationSchema.extend({
|
const BeerCommentValidationSchemaWithId = CreateCommentValidationSchema.extend({
|
||||||
beerPostId: z.string().uuid(),
|
beerPostId: z.string().cuid(),
|
||||||
});
|
});
|
||||||
|
|
||||||
const sendCreateBeerCommentRequest = async ({
|
const sendCreateBeerCommentRequest = async ({
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ import { z } from 'zod';
|
|||||||
import CreateCommentValidationSchema from '../types/CommentSchema/CreateCommentValidationSchema';
|
import CreateCommentValidationSchema from '../types/CommentSchema/CreateCommentValidationSchema';
|
||||||
|
|
||||||
const CreateNewBeerCommentServiceSchema = CreateCommentValidationSchema.extend({
|
const CreateNewBeerCommentServiceSchema = CreateCommentValidationSchema.extend({
|
||||||
userId: z.string().uuid(),
|
userId: z.string().cuid(),
|
||||||
beerPostId: z.string().uuid(),
|
beerPostId: z.string().cuid(),
|
||||||
});
|
});
|
||||||
|
|
||||||
const createNewBeerComment = async ({
|
const createNewBeerComment = async ({
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import beerPostQueryResult from './schema/BeerPostQueryResult';
|
|||||||
import CreateBeerPostValidationSchema from './schema/CreateBeerPostValidationSchema';
|
import CreateBeerPostValidationSchema from './schema/CreateBeerPostValidationSchema';
|
||||||
|
|
||||||
const CreateBeerPostWithUserSchema = CreateBeerPostValidationSchema.extend({
|
const CreateBeerPostWithUserSchema = CreateBeerPostValidationSchema.extend({
|
||||||
userId: z.string().uuid(),
|
userId: z.string().cuid(),
|
||||||
});
|
});
|
||||||
|
|
||||||
const createNewBeerPost = async ({
|
const createNewBeerPost = async ({
|
||||||
|
|||||||
@@ -31,13 +31,13 @@ const CreateBeerPostValidationSchema = z.object({
|
|||||||
required_error: 'Type id is required.',
|
required_error: 'Type id is required.',
|
||||||
invalid_type_error: 'Type id must be a string.',
|
invalid_type_error: 'Type id must be a string.',
|
||||||
})
|
})
|
||||||
.uuid({ message: 'Invalid type id.' }),
|
.cuid({ message: 'Invalid type id.' }),
|
||||||
breweryId: z
|
breweryId: z
|
||||||
.string({
|
.string({
|
||||||
required_error: 'Brewery id is required.',
|
required_error: 'Brewery id is required.',
|
||||||
invalid_type_error: 'Brewery id must be a string.',
|
invalid_type_error: 'Brewery id must be a string.',
|
||||||
})
|
})
|
||||||
.uuid({ message: 'Invalid brewery id.' }),
|
.cuid({ message: 'Invalid brewery id.' }),
|
||||||
});
|
});
|
||||||
|
|
||||||
export default CreateBeerPostValidationSchema;
|
export default CreateBeerPostValidationSchema;
|
||||||
|
|||||||
@@ -4,6 +4,6 @@ import CreateBeerPostValidationSchema from './CreateBeerPostValidationSchema';
|
|||||||
const EditBeerPostValidationSchema = CreateBeerPostValidationSchema.omit({
|
const EditBeerPostValidationSchema = CreateBeerPostValidationSchema.omit({
|
||||||
breweryId: true,
|
breweryId: true,
|
||||||
typeId: true,
|
typeId: true,
|
||||||
}).extend({ id: z.string().uuid() });
|
}).extend({ id: z.string().cuid() });
|
||||||
|
|
||||||
export default EditBeerPostValidationSchema;
|
export default EditBeerPostValidationSchema;
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ import { z } from 'zod';
|
|||||||
import CreateCommentValidationSchema from '../types/CommentSchema/CreateCommentValidationSchema';
|
import CreateCommentValidationSchema from '../types/CommentSchema/CreateCommentValidationSchema';
|
||||||
|
|
||||||
const CreateNewBreweryCommentServiceSchema = CreateCommentValidationSchema.extend({
|
const CreateNewBreweryCommentServiceSchema = CreateCommentValidationSchema.extend({
|
||||||
userId: z.string().uuid(),
|
userId: z.string().cuid(),
|
||||||
breweryPostId: z.string().uuid(),
|
breweryPostId: z.string().cuid(),
|
||||||
});
|
});
|
||||||
|
|
||||||
const createNewBreweryComment = async ({
|
const createNewBreweryComment = async ({
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ const findUserById = async (id: string) => {
|
|||||||
dateOfBirth: true,
|
dateOfBirth: true,
|
||||||
createdAt: true,
|
createdAt: true,
|
||||||
accountIsVerified: true,
|
accountIsVerified: true,
|
||||||
|
updatedAt: true
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
|
|
||||||
const GetUserSchema = z.object({
|
const GetUserSchema = z.object({
|
||||||
id: z.string().uuid(),
|
id: z.string().cuid(),
|
||||||
username: z.string(),
|
username: z.string(),
|
||||||
createdAt: z.coerce.date(),
|
createdAt: z.coerce.date(),
|
||||||
updatedAt: z.coerce.date().nullable(),
|
updatedAt: z.coerce.date().nullable(),
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ const updateUserToBeConfirmedById = async (id: string) => {
|
|||||||
createdAt: true,
|
createdAt: true,
|
||||||
firstName: true,
|
firstName: true,
|
||||||
lastName: true,
|
lastName: true,
|
||||||
|
updatedAt: true,
|
||||||
dateOfBirth: true,
|
dateOfBirth: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
|
|
||||||
const CommentQueryResult = z.object({
|
const CommentQueryResult = z.object({
|
||||||
id: z.string().uuid(),
|
id: z.string().cuid(),
|
||||||
content: z.string().min(1).max(500),
|
content: z.string().min(1).max(500),
|
||||||
rating: z.number().int().min(1).max(5),
|
rating: z.number().int().min(1).max(5),
|
||||||
createdAt: z.coerce.date(),
|
createdAt: z.coerce.date(),
|
||||||
postedBy: z.object({
|
postedBy: z.object({
|
||||||
id: z.string().uuid(),
|
id: z.string().cuid(),
|
||||||
username: z.string().min(1).max(50),
|
username: z.string().min(1).max(50),
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user