diff --git a/app/api/random/route.ts b/app/api/random/route.ts new file mode 100644 index 0000000..dfcc1a2 --- /dev/null +++ b/app/api/random/route.ts @@ -0,0 +1,36 @@ +import { faker } from "@faker-js/faker"; +import { db } from "@/lib/db"; +import { getDbUser } from "@/lib/getUser"; +import { NextRequest, NextResponse } from "next/server"; +// or, if desiring a different locale +// import { fakerDE as faker } from '@faker-js/faker'; + +export const dynamic = "force-dynamic"; + +export async function GET() { + const dbUser = await getDbUser(); + if (!dbUser) return new Response("User isn't authorize", { status: 401 }); + + const id = dbUser.id; + const name = faker.commerce.product(); + const description = faker.commerce.productDescription(); + const price = faker.commerce.price({ dec: 0 }); + const stock = faker.number.int({ min: 1, max: 99999 }); + + try { + const image = await fetch("https://source.unsplash.com/random"); + const res = await db.product.create({ + data: { + ownerId: id, + name: name, + description: description, + price: parseInt(price), + quantity: stock, + image: image.url, + }, + }); + return NextResponse.json({ status: 200, message: res }); + } catch (error) { + return NextResponse.json({ status: 204, message: error }); + } +} diff --git a/next.config.js b/next.config.js index 9f767ac..4763c1b 100644 --- a/next.config.js +++ b/next.config.js @@ -1,9 +1,8 @@ /** @type {import('next').NextConfig} */ const nextConfig = { images: { - domains: ["lh3.googleusercontent.com","res.cloudinary.com","utfs.io"], + domains: ["lh3.googleusercontent.com","res.cloudinary.com","utfs.io","images.unsplash.com","plus.unsplash.com"], }, - output: "standalone" } module.exports = nextConfig \ No newline at end of file diff --git a/package.json b/package.json index 54ca105..5473e3e 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "zod": "^3.22.4" }, "devDependencies": { + "@faker-js/faker": "^8.2.0", "@types/node": "^20", "@types/pluralize": "^0.0.32", "@types/react": "^18", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ab0654..cc7bf49 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -112,6 +112,9 @@ dependencies: version: 3.22.4 devDependencies: + '@faker-js/faker': + specifier: ^8.2.0 + version: 8.2.0 '@types/node': specifier: ^20 version: 20.8.7 @@ -226,6 +229,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@faker-js/faker@8.2.0: + resolution: {integrity: sha512-VacmzZqVxdWdf9y64lDOMZNDMM/FQdtM9IsaOPKOm2suYwEatb8VkdHqOzXcDnZbk7YDE2BmsJmy/2Hmkn563g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} + dev: true + /@floating-ui/core@1.5.0: resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==} dependencies: