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.js"; import { GetAllWhatsappBotsRoute, GetBotsRoute, SendBotRoute, ReceiveBotRoute, RegisterBotRoute, UnverifyBotRoute, RefreshBotRoute, CreateBotRoute, } from "./routes.js"; 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); });