pnpm build

This commit is contained in:
UltraLionFr
2025-08-20 17:14:23 +02:00
parent 9730e21999
commit 673119679e
8 changed files with 56 additions and 53 deletions
+2 -21
View File
@@ -1,24 +1,5 @@
import NextAuth, { NextAuthOptions } from 'next-auth'; import { authOptions } from "@/lib/auth";
import DiscordProvider from 'next-auth/providers/discord'; import NextAuth from "next-auth";
export const authOptions: NextAuthOptions = {
providers: [
DiscordProvider({
clientId: process.env.DISCORD_CLIENT_ID!,
clientSecret: process.env.DISCORD_CLIENT_SECRET!,
}),
],
callbacks: {
async session({ session, token }) {
if (session.user && token.sub) {
session.user.id = token.sub;
} else {
session.user.id = '';
}
return session;
},
}
};
const handler = NextAuth(authOptions); const handler = NextAuth(authOptions);
+1 -1
View File
@@ -1,8 +1,8 @@
import { authOptions } from '@/lib/auth';
import { prisma } from '@/lib/prisma'; import { prisma } from '@/lib/prisma';
import bcrypt from 'bcryptjs'; import bcrypt from 'bcryptjs';
import { getServerSession } from 'next-auth'; import { getServerSession } from 'next-auth';
import { NextResponse } from 'next/server'; import { NextResponse } from 'next/server';
import { authOptions } from '../auth/[...nextauth]/route';
import { customAlphabet } from 'nanoid'; import { customAlphabet } from 'nanoid';
const nanoid = customAlphabet('abcdefghijklmnopqrstuvwxyz0123456789', 7); const nanoid = customAlphabet('abcdefghijklmnopqrstuvwxyz0123456789', 7);
+1 -1
View File
@@ -1,7 +1,7 @@
import { authOptions } from '@/lib/auth';
import { getDashboardStats } from '@/lib/stats'; import { getDashboardStats } from '@/lib/stats';
import { getServerSession } from 'next-auth'; import { getServerSession } from 'next-auth';
import { NextResponse } from 'next/server'; import { NextResponse } from 'next/server';
import { authOptions } from '../auth/[...nextauth]/route';
export async function GET() { export async function GET() {
const session = await getServerSession(authOptions); const session = await getServerSession(authOptions);
+1 -1
View File
@@ -1,4 +1,4 @@
import { authOptions } from '@/app/api/auth/[...nextauth]/route'; import { authOptions } from '@/lib/auth';
import { prisma } from '@/lib/prisma'; import { prisma } from '@/lib/prisma';
import { getServerSession } from 'next-auth'; import { getServerSession } from 'next-auth';
import { NextResponse } from 'next/server'; import { NextResponse } from 'next/server';
+4 -4
View File
@@ -1,11 +1,11 @@
import { prisma } from "@/lib/prisma"; import { prisma } from "@/lib/prisma";
import { NextResponse } from "next/server"; import { NextResponse, type NextRequest } from "next/server";
export async function GET( export async function GET(
request: Request, _req: NextRequest,
{ params }: { params: { id: string } } { params }: { params: Promise<{ id: string }> }
) { ) {
const { id } = params; const { id } = await params;
if (!id) { if (!id) {
return new NextResponse("Invalid ID", { status: 400 }); return new NextResponse("Invalid ID", { status: 400 });
+21
View File
@@ -0,0 +1,21 @@
import { NextAuthOptions } from "next-auth";
import DiscordProvider from "next-auth/providers/discord";
export const authOptions: NextAuthOptions = {
providers: [
DiscordProvider({
clientId: process.env.DISCORD_CLIENT_ID!,
clientSecret: process.env.DISCORD_CLIENT_SECRET!,
}),
],
callbacks: {
async session({ session, token }) {
if (session.user && token.sub) {
(session.user as { id?: string }).id = token.sub;
} else {
(session.user as { id?: string }).id = "";
}
return session;
},
},
};
+13 -12
View File
@@ -1,11 +1,12 @@
import { prisma } from '@/lib/prisma'; import { prisma } from "@/lib/prisma";
export async function getDashboardStats(userId?: string) { export async function getDashboardStats(userId?: string) {
const filter = userId ? { where: { createdBy: userId } } : {}; const where = userId ? { createdBy: userId } : undefined;
const [totalPastes, totalViews, recentPastes, apiUsage, storageUsed, avgViews, mostViewed, avgSize] = await Promise.all([ const [totalPastes, totalViews, recentPastes, apiUsage, storageUsed, avgViews, mostViewed, avgSize] =
prisma.paste.count(filter), await Promise.all([
prisma.paste.aggregate({ _sum: { views: true }, ...filter }), prisma.paste.count({ where }),
prisma.paste.aggregate({ _sum: { views: true }, where }),
prisma.paste.count({ prisma.paste.count({
where: { where: {
createdAt: { gte: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000) }, createdAt: { gte: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000) },
@@ -13,14 +14,14 @@ export async function getDashboardStats(userId?: string) {
}, },
}), }),
prisma.paste.count({ where: { createdBy: { not: null } } }), prisma.paste.count({ where: { createdBy: { not: null } } }),
prisma.paste.aggregate({ _sum: { size: true }, ...filter }), prisma.paste.aggregate({ _sum: { size: true }, where }),
prisma.paste.aggregate({ _avg: { views: true }, ...filter }), prisma.paste.aggregate({ _avg: { views: true }, where }),
prisma.paste.findFirst({ prisma.paste.findFirst({
orderBy: { views: 'desc' }, orderBy: { views: "desc" },
select: { views: true }, select: { views: true },
...(userId ? { where: { createdBy: userId } } : {}), where,
}), }),
prisma.paste.aggregate({ _avg: { size: true }, ...filter }), prisma.paste.aggregate({ _avg: { size: true }, where }),
]); ]);
return { return {
@@ -36,9 +37,9 @@ export async function getDashboardStats(userId?: string) {
} }
export async function getUserPastes(userId: string) { export async function getUserPastes(userId: string) {
return await prisma.paste.findMany({ return prisma.paste.findMany({
where: { createdBy: userId }, where: { createdBy: userId },
orderBy: { createdAt: 'desc' }, orderBy: { createdAt: "desc" },
select: { select: {
id: true, id: true,
createdAt: true, createdAt: true,
BIN
View File
Binary file not shown.