42 lines
1015 B
TypeScript
42 lines
1015 B
TypeScript
import { eq } from "drizzle-orm";
|
|
import { db } from "@/lib/db";
|
|
import { user } from "@/lib/db/schema";
|
|
import {
|
|
openApiErrorResponse,
|
|
requireOpenApiPrincipal,
|
|
} from "@/lib/access-keys/openapi-auth";
|
|
|
|
export async function GET(request: Request) {
|
|
try {
|
|
const principal = await requireOpenApiPrincipal(request, "canvas:read");
|
|
const [currentUser] = await db
|
|
.select({
|
|
id: user.id,
|
|
email: user.email,
|
|
name: user.name,
|
|
department: user.department,
|
|
role: user.role,
|
|
})
|
|
.from(user)
|
|
.where(eq(user.id, principal.userId))
|
|
.limit(1);
|
|
|
|
return Response.json(
|
|
{
|
|
success: true,
|
|
data: {
|
|
user: currentUser,
|
|
accessKey: {
|
|
id: principal.accessKeyId,
|
|
name: principal.accessKeyName,
|
|
scopes: principal.scopes,
|
|
},
|
|
},
|
|
},
|
|
{ headers: { "Cache-Control": "no-store" } }
|
|
);
|
|
} catch (error) {
|
|
return openApiErrorResponse(error);
|
|
}
|
|
}
|