const t = initTRPC.context<typeof createTRPCContext>().create({
transformer: superjson,
errorFormatter({ shape, error }) {
return {
...shape,
data: {
...shape.data,
zodError:
error.cause instanceof ZodError ? error.cause.flatten() : null,
},
};
},
});
export const createTRPCContext = async (_opts: CreateNextContextOptions) => {
const { req, res } = _opts;
async function getUserFromHeader() {
console.log('req.headers.authorization: ', req.headers.authorization)
if (req.headers.authorization && req.headers.authorization.split(' ')[1]) {
try {
const token = localStorage.getItem('crypties:auth')
if (!token) return null;
const parsedToken = JSON.parse(token);
if (new Date(parsedToken.validUntil) < new Date()) return null
console.log('token: ', token)
const user = await prisma.users.findFirst({
where: {
walletAddress: parsedToken.userWalletAddress
},
});
return user;
} catch (error) {
return null;
}
}
return null;
}
return { req, res, user: await getUserFromHeader(), prisma };
};
export const publicProcedure = t.procedure;
const t = initTRPC.context<typeof createTRPCContext>().create({
transformer: superjson,
errorFormatter({ shape, error }) {
return {
...shape,
data: {
...shape.data,
zodError:
error.cause instanceof ZodError ? error.cause.flatten() : null,
},
};
},
});
export const createTRPCContext = async (_opts: CreateNextContextOptions) => {
const { req, res } = _opts;
async function getUserFromHeader() {
console.log('req.headers.authorization: ', req.headers.authorization)
if (req.headers.authorization && req.headers.authorization.split(' ')[1]) {
try {
const token = localStorage.getItem('crypties:auth')
if (!token) return null;
const parsedToken = JSON.parse(token);
if (new Date(parsedToken.validUntil) < new Date()) return null
console.log('token: ', token)
const user = await prisma.users.findFirst({
where: {
walletAddress: parsedToken.userWalletAddress
},
});
return user;
} catch (error) {
return null;
}
}
return null;
}
return { req, res, user: await getUserFromHeader(), prisma };
};
export const publicProcedure = t.procedure;