refactor(db): migrate app pages and APIs from Prisma facade to Drizzle (4)
Co-authored-by: Cursor <[email protected]>
This commit is contained in:
1 parent
580972c0a0
commit
9aa4f331bf
40 files changed
+1259
-927
No files matched your search
@@ -1,9 +1,10 @@
|
||||
import { asc, eq, gte } from "drizzle-orm";
|
||||
import { notFound, redirect } from "next/navigation";
|
||||
import { getTranslations } from "next-intl/server";
|
||||
import { TicketQueueBanner } from "@/components/admin/ticket-queue-banner";
|
||||
import { getMinStaffRank } from "@/lib/admin/min-staff-rank";
|
||||
import { db, User, WebsiteTicket } from "@/lib/db";
|
||||
import { canAccess, getAdminContext, PERMS } from "@/lib/permissions";
|
||||
import { prisma } from "@/lib/prisma";
|
||||
import { AdminTicketDetail } from "./admin-ticket-detail";
|
||||
|
||||
export default async function AdminTicketDetailPage({
|
||||
@@ -21,11 +22,11 @@ export default async function AdminTicketDetailPage({
|
||||
const ticketId = Number(id);
|
||||
if (Number.isNaN(ticketId)) notFound();
|
||||
|
||||
const ticket = await prisma.websiteTicket.findUnique({
|
||||
where: { id: ticketId },
|
||||
include: {
|
||||
const ticket = await db.query.WebsiteTicket.findFirst({
|
||||
where: eq(WebsiteTicket.id, ticketId),
|
||||
with: {
|
||||
creator: {
|
||||
select: {
|
||||
columns: {
|
||||
id: true,
|
||||
username: true,
|
||||
look: true,
|
||||
@@ -35,12 +36,12 @@ export default async function AdminTicketDetailPage({
|
||||
accountCreated: true,
|
||||
},
|
||||
},
|
||||
assignee: { select: { id: true, username: true } },
|
||||
assignee: { columns: { id: true, username: true } },
|
||||
messages: {
|
||||
orderBy: { createdAt: "asc" },
|
||||
include: {
|
||||
orderBy: (m, { asc: a }) => [a(m.createdAt)],
|
||||
with: {
|
||||
user: {
|
||||
select: { id: true, username: true, look: true, rank: true },
|
||||
columns: { id: true, username: true, look: true, rank: true },
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -51,11 +52,11 @@ export default async function AdminTicketDetailPage({
|
||||
|
||||
// Staff assignees: min_staff_rank and above
|
||||
const minStaffRank = await getMinStaffRank();
|
||||
const staffMembers = await prisma.user.findMany({
|
||||
where: { rank: { gte: minStaffRank } },
|
||||
select: { id: true, username: true },
|
||||
orderBy: { username: "asc" },
|
||||
});
|
||||
const staffMembers = await db
|
||||
.select({ id: User.id, username: User.username })
|
||||
.from(User)
|
||||
.where(gte(User.rank, minStaffRank))
|
||||
.orderBy(asc(User.username));
|
||||
|
||||
const canEdit = canAccess(permissions, PERMS.TICKETS_EDIT, session.user.rank);
|
||||
|
||||
|
||||
Reference in new issue
Block a user