// POST: /api/car/listings import Joi from "joi" import { PrismaClient } from "@prisma/client"; const prisma = new PrismaClient(); const schema = Joi.object({ make: Joi.string().required(), model : Joi.string().required(), year: Joi.number().min(1886).max(new Date().getFullYear()), miles: Joi.number().min(1).required(), city: Joi.string().min(2).required(), numberOfSeats: Joi.number().max(100).min(1).required(), features: Joi.array().items(Joi.string()).required(), image: Joi.string().required(), listerId: Joi.string().required(), price: Joi.number().min(100).required(), name: Joi.string().required(), description:Joi.string().min(20).required(), }); export default defineEventHandler(async (event) => { const body = await readBody(event); console.log("received:"); console.log(body); const {error,value} = await schema.validate(body); if (error) { throw createError({ statusCode: 412, statusMessage: error.message }); } const { image, name, numberOfSeats, price, features, description, miles, listerId, city, make, model } = body; console.log("saving body "); console.log(body); try { const car = await prisma.car.create({ data: { image, name, numberOfSeats, price, features, description, miles, listerId, city: city.toLowerCase(), make, model } }); console.log("returning car"); console.log(car); return car; } catch (error2) { console.log(error2.message); throw createError({ statusCode: 412, statusMessage: error2.message }); } });