add proxy routes, webauthn bug fix
This commit is contained in:
39
src/mailProxy/mailProxy.route.ts
Normal file
39
src/mailProxy/mailProxy.route.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { FastifyInstance } from "fastify";
|
||||
import { $mail, ProxyRequest } from "./mailProxy.schema";
|
||||
import { getOutlookTokens } from "./mailProxy.service";
|
||||
import axios from "axios";
|
||||
|
||||
export async function mailProxyRoutes(fastify: FastifyInstance) {
|
||||
fastify.post(
|
||||
"/",
|
||||
{
|
||||
schema: {
|
||||
body: $mail("proxyRequest"),
|
||||
},
|
||||
config: { requiredClaims: ["mail:all"] },
|
||||
preHandler: [fastify.authorize],
|
||||
},
|
||||
async (req, res) => {
|
||||
const input = req.body as ProxyRequest;
|
||||
|
||||
try {
|
||||
const tokens = await getOutlookTokens(input.email);
|
||||
if (!tokens) return res.code(404).send({ error: "resource not found" });
|
||||
|
||||
const result = await axios({
|
||||
url: input.url,
|
||||
method: input.method,
|
||||
headers: {
|
||||
Authorization: "Bearer " + tokens.access_token,
|
||||
},
|
||||
data: input.body,
|
||||
validateStatus: () => true,
|
||||
});
|
||||
|
||||
return res.code(result.status).send(result.data);
|
||||
} catch (err) {
|
||||
return err;
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user