|
| 1 | +import { Server } from 'socket.io'; |
| 2 | +import http from 'http'; |
1 | 3 | import { App } from '@tinyhttp/app'; |
2 | 4 | import { cors } from '@tinyhttp/cors'; |
| 5 | +import { jwt } from '@tinyhttp/jwt'; |
3 | 6 | import { json } from 'milliparsec'; |
4 | 7 | import type { PrismaClient } from '@prisma/client'; |
| 8 | +import { logger } from '@tinyhttp/logger'; |
5 | 9 | import { userRoutes } from './user/user-routes'; |
| 10 | +import { projectRoutes } from './project/project-routes'; |
| 11 | +import { authRoutes } from './auth/auth-routes'; |
| 12 | +import { taskRoutes } from './task/task-routes'; |
6 | 13 |
|
7 | | -const createApi = (prisma: unknown) => { |
| 14 | +const createApi = (prisma: PrismaClient) => { |
8 | 15 | const app = new App(); |
| 16 | + const server = http.createServer(); |
| 17 | + server.on('request', app.attach); |
| 18 | + const io = new Server(server); |
9 | 19 |
|
10 | 20 | app |
| 21 | + .use(jwt({ secret: process.env.JWT_SECRET ?? 'secret', algorithm: 'HS256' })) |
11 | 22 | .use(cors()) |
12 | | - .use((req, res, next) => (req.headers['content-type'] === 'application/json' ? json()(req, res, next) : next())); |
| 23 | + .use((req, res, next) => (req.headers['content-type'] === 'application/json' ? json()(req, res, next) : next())) |
| 24 | + .use(logger()); |
13 | 25 |
|
14 | | - userRoutes(app, prisma as PrismaClient); |
15 | | - // authRoutes(app, ajv, prisma) |
16 | | - // profileRoutes(app, ajv, prisma) |
17 | | - // articleRoutes(app, ajv, prisma) |
| 26 | + authRoutes(app, io, prisma); |
| 27 | + userRoutes(app, io, prisma); |
| 28 | + projectRoutes(app, io, prisma); |
| 29 | + taskRoutes(app, io, prisma); |
18 | 30 |
|
19 | | - return app; |
| 31 | + return server; |
20 | 32 | }; |
21 | 33 |
|
22 | 34 | export { createApi }; |
0 commit comments