18 lines
594 B
JavaScript
18 lines
594 B
JavaScript
import { prisma } from './prisma-client.js';
|
|
import { extractAuthTokenFromRequest, verifyAccessToken } from './auth.js';
|
|
|
|
export async function buildContext(req) {
|
|
const token = extractAuthTokenFromRequest(req);
|
|
const tokenPayload = verifyAccessToken(token);
|
|
const legacyUserIdHeader = Array.isArray(req.headers['x-user-id'])
|
|
? req.headers['x-user-id'][0]
|
|
: req.headers['x-user-id'];
|
|
const userId = tokenPayload?.userId ?? legacyUserIdHeader;
|
|
|
|
const user = userId
|
|
? await prisma.user.findUnique({ where: { id: String(userId) } })
|
|
: null;
|
|
|
|
return { prisma, user };
|
|
}
|