link-stack/apps/bridge-whatsapp/src/index.ts

61 lines
1.4 KiB
TypeScript
Raw Normal View History

2024-05-07 14:16:01 +02:00
import * as Hapi from "@hapi/hapi";
import * as AuthBearer from "hapi-auth-bearer-token";
import hapiPino from "hapi-pino";
import Schmervice from "@hapipal/schmervice";
import WhatsappService from "./service";
import {
GetAllWhatsappBotsRoute,
GetBotsRoute,
SendBotRoute,
ReceiveBotRoute,
RegisterBotRoute,
UnverifyBotRoute,
RefreshBotRoute,
CreateBotRoute,
} from "./routes";
const server = Hapi.server({ host: "localhost", port: 5000 });
const startServer = async () => {
await server.register({
plugin: hapiPino,
options: {
redact: ["req.headers.authorization"],
},
});
await server.register(AuthBearer);
server.auth.strategy("bearer", "bearer-access-token", {
validate: async (_request, token, _h) => {
const isValid = token === "1234";
const credentials = { token };
return { isValid, credentials };
},
});
server.route(GetAllWhatsappBotsRoute);
server.route(GetBotsRoute);
server.route(SendBotRoute);
server.route(ReceiveBotRoute);
server.route(RegisterBotRoute);
server.route(UnverifyBotRoute);
server.route(RefreshBotRoute);
server.route(CreateBotRoute);
await server.register(Schmervice);
server.registerService(WhatsappService);
await server.start();
return server;
};
const main = async () => {
await startServer();
};
main().catch((err) => {
console.error(err);
process.exit(1);
});