diff --git a/src/components/Login/LoginForm.tsx b/src/components/Login/LoginForm.tsx index 7b88170..a9d5443 100644 --- a/src/components/Login/LoginForm.tsx +++ b/src/components/Login/LoginForm.tsx @@ -38,7 +38,7 @@ const LoginForm = () => { await mutate!(); toast.remove(loadingToast); toast.success('Logged in!'); - await router.push(`/user/current`); + await router.push(`/users/current`); } catch (error) { toast.remove(loadingToast); createErrorToast(error); diff --git a/src/config/auth/types.ts b/src/config/auth/types.ts index 8dce7ce..c02fb94 100644 --- a/src/config/auth/types.ts +++ b/src/config/auth/types.ts @@ -4,7 +4,7 @@ import { NextApiRequest } from 'next'; import { z } from 'zod'; export const BasicUserInfoSchema = z.object({ - id: z.string().uuid(), + id: z.string().cuid(), username: z.string(), }); diff --git a/src/hooks/auth/useUser.ts b/src/hooks/auth/useUser.ts index 86c4a9f..f1340df 100644 --- a/src/hooks/auth/useUser.ts +++ b/src/hooks/auth/useUser.ts @@ -39,6 +39,7 @@ const useUser = () => { const parsedPayload = GetUserSchema.safeParse(parsed.data.payload); + console.log(parsedPayload) if (!parsedPayload.success) { throw new Error(parsedPayload.error.message); } @@ -46,6 +47,7 @@ const useUser = () => { return parsedPayload.data; }); + return { user, isLoading, error: error as unknown, mutate }; }; diff --git a/src/pages/api/beer-comments/[id].ts b/src/pages/api/beer-comments/[id].ts index bf9129d..f5130b8 100644 --- a/src/pages/api/beer-comments/[id].ts +++ b/src/pages/api/beer-comments/[id].ts @@ -85,14 +85,14 @@ const router = createRouter< router .delete( - validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }), + validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }), getCurrentUser, checkIfCommentOwner, deleteComment, ) .put( validateRequest({ - querySchema: z.object({ id: z.string().uuid() }), + querySchema: z.object({ id: z.string().cuid() }), bodySchema: CreateCommentValidationSchema, }), getCurrentUser, diff --git a/src/pages/api/beers/[id]/comments/index.ts b/src/pages/api/beers/[id]/comments/index.ts index a385c40..bd44ae4 100644 --- a/src/pages/api/beers/[id]/comments/index.ts +++ b/src/pages/api/beers/[id]/comments/index.ts @@ -79,7 +79,7 @@ const router = createRouter< router.post( validateRequest({ bodySchema: CreateCommentValidationSchema, - querySchema: z.object({ id: z.string().uuid() }), + querySchema: z.object({ id: z.string().cuid() }), }), getCurrentUser, createComment, @@ -88,7 +88,7 @@ router.post( router.get( validateRequest({ querySchema: z.object({ - id: z.string().uuid(), + id: z.string().cuid(), page_size: z.coerce.number().int().positive(), page_num: z.coerce.number().int().positive(), }), diff --git a/src/pages/api/beers/[id]/like/index.ts b/src/pages/api/beers/[id]/like/index.ts index d422617..ed58b52 100644 --- a/src/pages/api/beers/[id]/like/index.ts +++ b/src/pages/api/beers/[id]/like/index.ts @@ -70,12 +70,12 @@ const router = createRouter< router.post( getCurrentUser, - validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }), + validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }), sendLikeRequest, ); router.get( - validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }), + validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }), getLikeCount, ); diff --git a/src/pages/api/beers/[id]/like/is-liked.ts b/src/pages/api/beers/[id]/like/is-liked.ts index 2b325b2..811cd9e 100644 --- a/src/pages/api/beers/[id]/like/is-liked.ts +++ b/src/pages/api/beers/[id]/like/is-liked.ts @@ -32,7 +32,7 @@ const router = createRouter< router.get( getCurrentUser, - validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }), + validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }), checkIfLiked, ); diff --git a/src/pages/api/beers/[id]/recommendations.ts b/src/pages/api/beers/[id]/recommendations.ts index 28c7c23..bdcef88 100644 --- a/src/pages/api/beers/[id]/recommendations.ts +++ b/src/pages/api/beers/[id]/recommendations.ts @@ -50,7 +50,7 @@ const getBeerRecommendationsRequest = async ( router.get( validateRequest({ querySchema: z.object({ - id: z.string().uuid(), + id: z.string().cuid(), page_num: z.string().regex(/^[0-9]+$/), page_size: z.string().regex(/^[0-9]+$/), }), diff --git a/src/pages/api/breweries/[id]/comments/index.ts b/src/pages/api/breweries/[id]/comments/index.ts index 3daa44c..b8ea448 100644 --- a/src/pages/api/breweries/[id]/comments/index.ts +++ b/src/pages/api/breweries/[id]/comments/index.ts @@ -89,7 +89,7 @@ const router = createRouter< router.post( validateRequest({ bodySchema: CreateCommentValidationSchema, - querySchema: z.object({ id: z.string().uuid() }), + querySchema: z.object({ id: z.string().cuid() }), }), getCurrentUser, createComment, @@ -98,7 +98,7 @@ router.post( router.get( validateRequest({ querySchema: z.object({ - id: z.string().uuid(), + id: z.string().cuid(), page_size: z.coerce.number().int().positive(), page_num: z.coerce.number().int().positive(), }), diff --git a/src/pages/api/breweries/[id]/like/index.ts b/src/pages/api/breweries/[id]/like/index.ts index 4c75729..d567dd6 100644 --- a/src/pages/api/breweries/[id]/like/index.ts +++ b/src/pages/api/breweries/[id]/like/index.ts @@ -83,12 +83,12 @@ const router = createRouter< router.post( getCurrentUser, - validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }), + validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }), sendLikeRequest, ); router.get( - validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }), + validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }), getLikeCount, ); diff --git a/src/pages/api/breweries/[id]/like/is-liked.ts b/src/pages/api/breweries/[id]/like/is-liked.ts index 7f7a0f6..00dc7eb 100644 --- a/src/pages/api/breweries/[id]/like/is-liked.ts +++ b/src/pages/api/breweries/[id]/like/is-liked.ts @@ -39,7 +39,7 @@ router.get( getCurrentUser, validateRequest({ querySchema: z.object({ - id: z.string().uuid(), + id: z.string().cuid(), }), }), checkIfLiked, diff --git a/src/pages/api/brewery-comments/[id].ts b/src/pages/api/brewery-comments/[id].ts index 8b81abf..b72479e 100644 --- a/src/pages/api/brewery-comments/[id].ts +++ b/src/pages/api/brewery-comments/[id].ts @@ -87,14 +87,14 @@ const router = createRouter< router .delete( - validateRequest({ querySchema: z.object({ id: z.string().uuid() }) }), + validateRequest({ querySchema: z.object({ id: z.string().cuid() }) }), getCurrentUser, checkIfCommentOwner, deleteComment, ) .put( validateRequest({ - querySchema: z.object({ id: z.string().uuid() }), + querySchema: z.object({ id: z.string().cuid() }), bodySchema: CreateCommentValidationSchema, }), getCurrentUser, diff --git a/src/pages/api/users/[id]/edit.ts b/src/pages/api/users/[id]/edit.ts index 4ef5b14..e644878 100644 --- a/src/pages/api/users/[id]/edit.ts +++ b/src/pages/api/users/[id]/edit.ts @@ -97,7 +97,7 @@ router.put( getCurrentUser, validateRequest({ bodySchema: EditUserSchema, - querySchema: z.object({ id: z.string().uuid() }), + querySchema: z.object({ id: z.string().cuid() }), }), checkIfUserCanEditUser, editUser, diff --git a/src/pages/users/[id].tsx b/src/pages/users/[id].tsx new file mode 100644 index 0000000..570a3c8 --- /dev/null +++ b/src/pages/users/[id].tsx @@ -0,0 +1,6 @@ +import { FC } from "react" + +const UserInfoPage: FC = () => null + + +export default UserInfoPage \ No newline at end of file diff --git a/src/pages/user/current.tsx b/src/pages/users/current.tsx similarity index 100% rename from src/pages/user/current.tsx rename to src/pages/users/current.tsx diff --git a/src/prisma/schema.prisma b/src/prisma/schema.prisma index d9e0c98..7fdb15e 100644 --- a/src/prisma/schema.prisma +++ b/src/prisma/schema.prisma @@ -13,7 +13,7 @@ datasource db { } model User { - id String @id @default(uuid()) + id String @id @default(cuid()) username String @unique firstName String lastName String @@ -36,7 +36,7 @@ model User { } model BeerPost { - id String @id @default(uuid()) + id String @id @default(cuid()) name String ibu Float abv Float @@ -55,7 +55,7 @@ model BeerPost { } model BeerPostLike { - id String @id @default(uuid()) + id String @id @default(cuid()) beerPost BeerPost @relation(fields: [beerPostId], references: [id], onDelete: Cascade) beerPostId String likedBy User @relation(fields: [likedById], references: [id], onDelete: Cascade) @@ -65,7 +65,7 @@ model BeerPostLike { } model BreweryPostLike { - id String @id @default(uuid()) + id String @id @default(cuid()) breweryPost BreweryPost @relation(fields: [breweryPostId], references: [id], onDelete: Cascade) breweryPostId String likedBy User @relation(fields: [likedById], references: [id], onDelete: Cascade) @@ -75,7 +75,7 @@ model BreweryPostLike { } model BeerComment { - id String @id @default(uuid()) + id String @id @default(cuid()) rating Int beerPost BeerPost @relation(fields: [beerPostId], references: [id], onDelete: Cascade) beerPostId String @@ -87,7 +87,7 @@ model BeerComment { } model BeerType { - id String @id @default(uuid()) + id String @id @default(cuid()) name String createdAt DateTime @default(now()) @db.Timestamptz(3) updatedAt DateTime? @updatedAt @db.Timestamptz(3) @@ -97,7 +97,7 @@ model BeerType { } model Location { - id String @id @default(uuid()) + id String @id @default(cuid()) city String stateOrProvince String? country String? @@ -109,7 +109,7 @@ model Location { } model BreweryPost { - id String @id @default(uuid()) + id String @id @default(cuid()) name String location Location @relation(fields: [locationId], references: [id]) locationId String @unique @@ -126,7 +126,7 @@ model BreweryPost { } model BreweryComment { - id String @id @default(uuid()) + id String @id @default(cuid()) rating Int breweryPost BreweryPost @relation(fields: [breweryPostId], references: [id], onDelete: Cascade) breweryPostId String @@ -138,7 +138,7 @@ model BreweryComment { } model BeerImage { - id String @id @default(uuid()) + id String @id @default(cuid()) beerPost BeerPost @relation(fields: [beerPostId], references: [id], onDelete: Cascade) beerPostId String path String @@ -151,7 +151,7 @@ model BeerImage { } model BreweryImage { - id String @id @default(uuid()) + id String @id @default(cuid()) breweryPost BreweryPost @relation(fields: [breweryPostId], references: [id], onDelete: Cascade) breweryPostId String path String diff --git a/src/requests/BeerComment/sendCreateBeerCommentRequest.ts b/src/requests/BeerComment/sendCreateBeerCommentRequest.ts index afa8a2c..0874ec9 100644 --- a/src/requests/BeerComment/sendCreateBeerCommentRequest.ts +++ b/src/requests/BeerComment/sendCreateBeerCommentRequest.ts @@ -5,7 +5,7 @@ import APIResponseValidationSchema from '@/validation/APIResponseValidationSchem import { z } from 'zod'; const BeerCommentValidationSchemaWithId = CreateCommentValidationSchema.extend({ - beerPostId: z.string().uuid(), + beerPostId: z.string().cuid(), }); const sendCreateBeerCommentRequest = async ({ diff --git a/src/services/BeerComment/createNewBeerComment.ts b/src/services/BeerComment/createNewBeerComment.ts index c869b68..edd4825 100644 --- a/src/services/BeerComment/createNewBeerComment.ts +++ b/src/services/BeerComment/createNewBeerComment.ts @@ -3,8 +3,8 @@ import { z } from 'zod'; import CreateCommentValidationSchema from '../types/CommentSchema/CreateCommentValidationSchema'; const CreateNewBeerCommentServiceSchema = CreateCommentValidationSchema.extend({ - userId: z.string().uuid(), - beerPostId: z.string().uuid(), + userId: z.string().cuid(), + beerPostId: z.string().cuid(), }); const createNewBeerComment = async ({ diff --git a/src/services/BeerPost/createNewBeerPost.ts b/src/services/BeerPost/createNewBeerPost.ts index 7391ff7..1b8d3f1 100644 --- a/src/services/BeerPost/createNewBeerPost.ts +++ b/src/services/BeerPost/createNewBeerPost.ts @@ -4,7 +4,7 @@ import beerPostQueryResult from './schema/BeerPostQueryResult'; import CreateBeerPostValidationSchema from './schema/CreateBeerPostValidationSchema'; const CreateBeerPostWithUserSchema = CreateBeerPostValidationSchema.extend({ - userId: z.string().uuid(), + userId: z.string().cuid(), }); const createNewBeerPost = async ({ diff --git a/src/services/BeerPost/schema/CreateBeerPostValidationSchema.ts b/src/services/BeerPost/schema/CreateBeerPostValidationSchema.ts index 5325920..e9aa330 100644 --- a/src/services/BeerPost/schema/CreateBeerPostValidationSchema.ts +++ b/src/services/BeerPost/schema/CreateBeerPostValidationSchema.ts @@ -31,13 +31,13 @@ const CreateBeerPostValidationSchema = z.object({ required_error: 'Type id is required.', invalid_type_error: 'Type id must be a string.', }) - .uuid({ message: 'Invalid type id.' }), + .cuid({ message: 'Invalid type id.' }), breweryId: z .string({ required_error: 'Brewery id is required.', invalid_type_error: 'Brewery id must be a string.', }) - .uuid({ message: 'Invalid brewery id.' }), + .cuid({ message: 'Invalid brewery id.' }), }); export default CreateBeerPostValidationSchema; diff --git a/src/services/BeerPost/schema/EditBeerPostValidationSchema.ts b/src/services/BeerPost/schema/EditBeerPostValidationSchema.ts index ab11b77..f9f7233 100644 --- a/src/services/BeerPost/schema/EditBeerPostValidationSchema.ts +++ b/src/services/BeerPost/schema/EditBeerPostValidationSchema.ts @@ -4,6 +4,6 @@ import CreateBeerPostValidationSchema from './CreateBeerPostValidationSchema'; const EditBeerPostValidationSchema = CreateBeerPostValidationSchema.omit({ breweryId: true, typeId: true, -}).extend({ id: z.string().uuid() }); +}).extend({ id: z.string().cuid() }); export default EditBeerPostValidationSchema; diff --git a/src/services/BreweryComment/createNewBreweryComment.ts b/src/services/BreweryComment/createNewBreweryComment.ts index 9dc1ed6..c89fa07 100644 --- a/src/services/BreweryComment/createNewBreweryComment.ts +++ b/src/services/BreweryComment/createNewBreweryComment.ts @@ -3,8 +3,8 @@ import { z } from 'zod'; import CreateCommentValidationSchema from '../types/CommentSchema/CreateCommentValidationSchema'; const CreateNewBreweryCommentServiceSchema = CreateCommentValidationSchema.extend({ - userId: z.string().uuid(), - breweryPostId: z.string().uuid(), + userId: z.string().cuid(), + breweryPostId: z.string().cuid(), }); const createNewBreweryComment = async ({ diff --git a/src/services/User/findUserById.ts b/src/services/User/findUserById.ts index 211317f..f120404 100644 --- a/src/services/User/findUserById.ts +++ b/src/services/User/findUserById.ts @@ -15,6 +15,7 @@ const findUserById = async (id: string) => { dateOfBirth: true, createdAt: true, accountIsVerified: true, + updatedAt: true }, }); diff --git a/src/services/User/schema/GetUserSchema.ts b/src/services/User/schema/GetUserSchema.ts index aa625c6..b14f8fd 100644 --- a/src/services/User/schema/GetUserSchema.ts +++ b/src/services/User/schema/GetUserSchema.ts @@ -1,7 +1,7 @@ import { z } from 'zod'; const GetUserSchema = z.object({ - id: z.string().uuid(), + id: z.string().cuid(), username: z.string(), createdAt: z.coerce.date(), updatedAt: z.coerce.date().nullable(), diff --git a/src/services/User/updateUserToBeConfirmedById.ts b/src/services/User/updateUserToBeConfirmedById.ts index 34478f7..0cf8e7f 100644 --- a/src/services/User/updateUserToBeConfirmedById.ts +++ b/src/services/User/updateUserToBeConfirmedById.ts @@ -14,6 +14,7 @@ const updateUserToBeConfirmedById = async (id: string) => { createdAt: true, firstName: true, lastName: true, + updatedAt: true, dateOfBirth: true, }, }); diff --git a/src/services/types/CommentSchema/CommentQueryResult.ts b/src/services/types/CommentSchema/CommentQueryResult.ts index f88ba5b..bb52111 100644 --- a/src/services/types/CommentSchema/CommentQueryResult.ts +++ b/src/services/types/CommentSchema/CommentQueryResult.ts @@ -1,12 +1,12 @@ import { z } from 'zod'; const CommentQueryResult = z.object({ - id: z.string().uuid(), + id: z.string().cuid(), content: z.string().min(1).max(500), rating: z.number().int().min(1).max(5), createdAt: z.coerce.date(), postedBy: z.object({ - id: z.string().uuid(), + id: z.string().cuid(), username: z.string().min(1).max(50), }), });