import { env } from "@/env.mjs"; import { getUserRecords } from "@/lib/dto/cloudflare-dns-record"; import { updateUserShortUrl } from "@/lib/dto/short-urls"; import { checkUserStatus } from "@/lib/dto/user"; import { getCurrentUser } from "@/lib/session"; import { createUrlSchema } from "@/lib/validations/url"; export async function POST(req: Request) { try { const user = checkUserStatus(await getCurrentUser()); if (user instanceof Response) return user; if (user.role !== "ADMIN") { return Response.json("Unauthorized", { status: 401, statusText: "Unauthorized", }); } const { data, userId } = await req.json(); if (!data?.id || !userId) { return Response.json(`Url id is required`, { status: 400, statusText: `Url id is required`, }); } const { target, url, prefix, visible, active, id, expiration, password } = createUrlSchema.parse(data); const res = await updateUserShortUrl({ id, userId, userName: "", target, url, prefix, visible, active, expiration, password, }); if (res.status !== "success") { return Response.json(res.status, { status: 400, statusText: `An error occurred. ${res.status}`, }); } return Response.json(res.data); } catch (error) { return Response.json(error?.statusText || error, { status: error.status || 500, statusText: error.statusText || "Server error", }); } }