"use server" import { z } from "zod" import { getSession } from "../auth/session" import { insertUrl } from "../db/urls" import { urlFormSchema } from "../schema/url" import { deleteUrl as deleteUrlDb } from "../db/urls" type Response = { error: boolean message: string } export async function addUrl(unsafeData: unknown): Promise { const { session } = await getSession() if (!session) { return { error: true, message: "You must be logged in to create a short link." } } const { error, data } = urlFormSchema.safeParse(unsafeData) if (error) { return { error: true, message: "Error parsing form data." } } await insertUrl(data) return { error: false, message: "Short link created successfully!" } } export async function deleteUrl(unsafe: unknown): Promise { const { session } = await getSession() if (!session) { return { error: true, message: "You must be logged in to create a short link." } } const { error, data: id } = z.string().safeParse(unsafe) if (error) { return { error: true, message: "Error parsing form data." } } await deleteUrlDb(id) return { error: false, message: "Short link deleted successfully!" } }