| import { OpenAPIHono } from "@hono/zod-openapi"; |
| import { |
| authMiddleware, |
| loggingMiddleware, |
| securityMiddleware, |
| } from "./middleware"; |
| import accountRoutes from "./routes/accounts"; |
| import authRoutes from "./routes/auth"; |
| import connectionRoutes from "./routes/connections"; |
| import healthRoutes from "./routes/health"; |
| import institutionRoutes from "./routes/institutions"; |
| import ratesRoutes from "./routes/rates"; |
| import transactionsRoutes from "./routes/transactions"; |
|
|
| const app = new OpenAPIHono({ |
| defaultHook: (result, c) => { |
| if (!result.success) { |
| return c.json( |
| { |
| success: false, |
| errors: result.error.issues, |
| }, |
| 422, |
| ); |
| } |
| }, |
| }); |
|
|
| app.use(authMiddleware); |
| app.use(securityMiddleware); |
| app.use(loggingMiddleware); |
|
|
| app.get("/", (c) => { |
| return c.redirect("https://midday.ai", 302); |
| }); |
|
|
| export const appRoutes = app |
| .route("/transactions", transactionsRoutes) |
| .route("/accounts", accountRoutes) |
| .route("/institutions", institutionRoutes) |
| .route("/auth", authRoutes) |
| .route("/connections", connectionRoutes) |
| .route("/health", healthRoutes) |
| .route("/rates", ratesRoutes); |
|
|
| export type AppType = typeof appRoutes; |
|
|
| export default app; |
|
|