vendor slugs routes instead of ids
This commit is contained in:
13
app/api/vendors/create/route.ts
vendored
13
app/api/vendors/create/route.ts
vendored
@@ -1,6 +1,7 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
import { prisma } from '@/lib/prisma'
|
||||
import { VendorType, VendorStatus } from '@prisma/client'
|
||||
import { generateUniqueSlug, slugify } from '@/lib/utils/slugify'
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
@@ -15,6 +16,17 @@ export async function POST(request: NextRequest) {
|
||||
{ status: 400 }
|
||||
)
|
||||
}
|
||||
|
||||
const baseSlug = slugify(body.name)
|
||||
const uniqueSlug = await generateUniqueSlug(
|
||||
baseSlug,
|
||||
async (slug) => {
|
||||
const existing = await prisma.vendor.findUnique({
|
||||
where: { slug }
|
||||
})
|
||||
return !!existing
|
||||
}
|
||||
)
|
||||
|
||||
// Check if we have address data
|
||||
const hasAddress = body.street && body.city && body.state && body.postalCode
|
||||
@@ -34,6 +46,7 @@ export async function POST(request: NextRequest) {
|
||||
|
||||
// Prepare vendor data WITHOUT addressId
|
||||
const vendorData: any = {
|
||||
slug: uniqueSlug,
|
||||
name: body.name,
|
||||
type: body.type as VendorType,
|
||||
description: body.description || null,
|
||||
|
||||
Reference in New Issue
Block a user