feat(housekeeping): complete people moderation parity
This commit is contained in:
1 parent
3d385d1869
commit
29fe22297b
41 files changed
+3465
-580
No files matched your search
@@ -4,7 +4,6 @@ import { eq } from "drizzle-orm";
|
||||
import { revalidatePath } from "next/cache";
|
||||
import { redirect } from "next/navigation";
|
||||
import { z } from "zod";
|
||||
import { positiveBigInt } from "@/lib/api";
|
||||
import { auth } from "@/lib/auth";
|
||||
import {
|
||||
db,
|
||||
@@ -14,7 +13,10 @@ import {
|
||||
} from "@/lib/db";
|
||||
import { clientIp, rateLimit } from "@/lib/rate-limit";
|
||||
import { moderateOrThrow } from "@/lib/services/moderation";
|
||||
import { createOwnedTicketReply } from "@/lib/services/ticket-replies";
|
||||
import {
|
||||
canonicalTicketId,
|
||||
createOwnedTicketReply,
|
||||
} from "@/lib/services/ticket-replies";
|
||||
|
||||
const ticketSchema = z.object({
|
||||
title: z.string().min(1, "Title is required").max(255),
|
||||
@@ -64,6 +66,14 @@ function isNextRedirect(e: unknown): boolean {
|
||||
);
|
||||
}
|
||||
|
||||
function helpTicketId(formData: FormData): bigint | null {
|
||||
try {
|
||||
return canonicalTicketId(String(formData.get("ticketId") ?? ""));
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export async function createTicket(formData: FormData): Promise<void> {
|
||||
let outcome: TicketOutcome = "error";
|
||||
|
||||
@@ -177,7 +187,7 @@ const replyContentSchema = z.object({
|
||||
});
|
||||
|
||||
export async function replyHelpTicket(formData: FormData): Promise<void> {
|
||||
const ticketId = positiveBigInt(String(formData.get("ticketId") ?? ""));
|
||||
const ticketId = helpTicketId(formData);
|
||||
let outcome: TicketDetailOutcome = "error";
|
||||
|
||||
try {
|
||||
@@ -284,7 +294,7 @@ export async function replyHelpTicket(formData: FormData): Promise<void> {
|
||||
}
|
||||
|
||||
export async function closeHelpTicket(formData: FormData): Promise<void> {
|
||||
const ticketId = positiveBigInt(String(formData.get("ticketId") ?? ""));
|
||||
const ticketId = helpTicketId(formData);
|
||||
let outcome: TicketDetailOutcome = "error";
|
||||
|
||||
try {
|
||||
|
||||
Reference in new issue
Block a user