Added actions
This commit is contained in:
@@ -1,10 +1,9 @@
|
||||
"use server"
|
||||
|
||||
import { z } from "zod"
|
||||
import { getSession } from "../auth/session"
|
||||
import { insertUrl } from "../db/urls"
|
||||
import { advancedUrlSchema, urlFormSchema } from "../schema/url"
|
||||
import { deleteUrl as deleteUrlDb } from "../db/urls"
|
||||
import { advancedUrlSchema, editUrlSchema, urlFormSchema } from "../schema/url"
|
||||
import { deleteUrl as deleteUrlDb, updateUrl as updateUrlDb } from "../db/urls"
|
||||
import { revalidatePath } from "next/cache"
|
||||
import { getWebsiteTitle } from "../websiteTitle"
|
||||
|
||||
@@ -78,7 +77,34 @@ export async function createAdvanceUrl(unsafeData: unknown): Promise<Response> {
|
||||
}
|
||||
}
|
||||
|
||||
export async function deleteUrl(unsafe: unknown): Promise<Response> {
|
||||
export async function updateUrl(id: string, unsafeData: unknown): Promise<Response> {
|
||||
const { session } = await getSession()
|
||||
|
||||
if (!session) {
|
||||
return {
|
||||
error: true,
|
||||
message: "You must be logged in to update a short link."
|
||||
}
|
||||
}
|
||||
|
||||
const { error, data } = editUrlSchema.safeParse(unsafeData)
|
||||
|
||||
if (error) {
|
||||
return {
|
||||
error: true,
|
||||
message: "Error parsing form data."
|
||||
}
|
||||
}
|
||||
|
||||
await updateUrlDb(id, data)
|
||||
|
||||
return {
|
||||
error: false,
|
||||
message: "Short link updated successfully!"
|
||||
}
|
||||
}
|
||||
|
||||
export async function deleteUrl(id: string): Promise<Response> {
|
||||
const { session } = await getSession()
|
||||
|
||||
if (!session) {
|
||||
@@ -88,15 +114,6 @@ export async function deleteUrl(unsafe: unknown): Promise<Response> {
|
||||
}
|
||||
}
|
||||
|
||||
const { error, data: id } = z.string().safeParse(unsafe)
|
||||
|
||||
if (error) {
|
||||
return {
|
||||
error: true,
|
||||
message: "Error parsing form data."
|
||||
}
|
||||
}
|
||||
|
||||
await deleteUrlDb(id)
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user