46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import { NextResponse, NextRequest } from 'next/server'
|
|
import { validateToken, decryptToken } from '@/lib/jwt'
|
|
import { db } from '@/lib/db'
|
|
|
|
export async function GET(req: NextRequest) {
|
|
try {
|
|
const token = req?.headers.get("authorization")?.split(" ")[1]
|
|
|
|
if(token !== undefined) {
|
|
if(validateToken(token)) {
|
|
const tokenData = decryptToken(token)
|
|
if(tokenData.admin == true){
|
|
const bsets = await db.bset.findMany({
|
|
relationLoadStrategy: "join",
|
|
include: {
|
|
sets: true
|
|
}
|
|
})
|
|
return NextResponse.json({"data": bsets},{
|
|
status: 200,
|
|
});
|
|
} else {
|
|
return NextResponse.json({"message": "You're not admin."},{
|
|
status: 401,
|
|
});
|
|
}
|
|
} else {
|
|
return NextResponse.json({"message": "Your token is not valid."},{
|
|
status: 401,
|
|
});
|
|
}
|
|
} else {
|
|
return NextResponse.json({"message": "You did not provide a token."},{
|
|
status: 401,
|
|
});
|
|
}
|
|
} catch (error) {
|
|
console.log(error)
|
|
return NextResponse.json(
|
|
{ error: "Failed, check console" },
|
|
{
|
|
status: 500,
|
|
}
|
|
);
|
|
}
|
|
}
|