From c754d1de6e6743f91ad523cea211d04d2e3a0305 Mon Sep 17 00:00:00 2001 From: Justin xzHome Date: Wed, 9 Jul 2025 22:59:32 +0900 Subject: [PATCH] updateProductSchema added --- api/src/db/productsSchema.ts | 4 ++++ api/src/routes/products/index.ts | 4 ++-- api/src/routes/products/productsController.ts | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/api/src/db/productsSchema.ts b/api/src/db/productsSchema.ts index 537fe0d..8fd3a73 100644 --- a/api/src/db/productsSchema.ts +++ b/api/src/db/productsSchema.ts @@ -19,3 +19,7 @@ export const createProductSchema = createInsertSchema(productsTable).omit({ id: true, }); +export const updateProductSchema = createUpdateSchema(productsTable).omit({ + id: true, +}) +.partial(); diff --git a/api/src/routes/products/index.ts b/api/src/routes/products/index.ts index a614e9d..0934fcb 100644 --- a/api/src/routes/products/index.ts +++ b/api/src/routes/products/index.ts @@ -7,7 +7,7 @@ import { listProducts, } from "./productsController"; import { validateData } from "../../middlewares/validationMiddleware"; import { z, ZodObject, ZodTypeAny } from 'zod/v4'; -import { productsTable, createProductSchema } from "../../db/productsSchema"; +import { productsTable, createProductSchema, updateProductSchema } from "../../db/productsSchema"; type ProductType = z.infer; @@ -18,7 +18,7 @@ const router = Router(); router.get('/', listProducts); router.get('/:id', getProductById); router.post('/', validateData(createProductSchema), createProduct); -router.put('/:id', updateProduct); +router.put('/:id', validateData(updateProductSchema), updateProduct); router.delete('/:id', deleteProduct); export default router; \ No newline at end of file diff --git a/api/src/routes/products/productsController.ts b/api/src/routes/products/productsController.ts index 31bad19..812117a 100644 --- a/api/src/routes/products/productsController.ts +++ b/api/src/routes/products/productsController.ts @@ -52,7 +52,7 @@ export async function createProduct(req: Request, res: Response) { export async function updateProduct(req: Request, res: Response) { try{ const id = Number(req.params.id); - const updatedFields = req.body; + const updatedFields = req.cleanBody; const result = await db .update(productsTable)