Update: change identifiers to cuid

This commit is contained in:
Aaron William Po
2023-05-28 21:24:59 -04:00
parent 2b026b7e5f
commit bc298bce0e
26 changed files with 51 additions and 41 deletions

View File

@@ -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);

View File

@@ -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(),
}); });

View File

@@ -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 };
}; };

View File

@@ -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,

View File

@@ -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(),
}), }),

View File

@@ -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,
); );

View File

@@ -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,
); );

View File

@@ -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]+$/),
}), }),

View File

@@ -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(),
}), }),

View File

@@ -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,
); );

View File

@@ -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,

View File

@@ -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,

View File

@@ -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
View File

@@ -0,0 +1,6 @@
import { FC } from "react"
const UserInfoPage: FC = () => null
export default UserInfoPage

View File

@@ -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

View File

@@ -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 ({

View File

@@ -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 ({

View File

@@ -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 ({

View File

@@ -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;

View File

@@ -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;

View File

@@ -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 ({

View File

@@ -15,6 +15,7 @@ const findUserById = async (id: string) => {
dateOfBirth: true, dateOfBirth: true,
createdAt: true, createdAt: true,
accountIsVerified: true, accountIsVerified: true,
updatedAt: true
}, },
}); });

View File

@@ -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(),

View File

@@ -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,
}, },
}); });

View File

@@ -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),
}), }),
}); });