car_trader/server/api/car/listings/[listingId]/message.post.ts

46 lines
1.0 KiB
TypeScript

// POST: /api/car/listings/[listingId]/message
import { PrismaClient } from "@prisma/client";
import Joi from "joi"
const schema = Joi.object({
email: Joi.string().email({
minDomainSegments:2,
tlds: {allow: ["com","net","de"]}
}).required(),
phone: Joi.string().length(10).pattern(/^[0-9]+$/).required(),
name:Joi.string().required(),
message:Joi.string().min(20).required(),
});
const prisma = new PrismaClient();
export default defineEventHandler(async (event) => {
const body = await readBody(event);
const {listingId} = event.context.params;
//console.log(body);
const {error} = await schema.validate(body);
if (error) {
throw createError({
statusCode:412,
statusMessage:error.message
})
}
const {message, email, phone, name} = body;
return prisma.message.create({
data: {
message,
email,
name,
phone,
listingId: parseInt(listingId)
}
});
});