-
Notifications
You must be signed in to change notification settings - Fork 2
/
server.js
49 lines (45 loc) · 2.09 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import http from 'http';
import nc from 'next-connect';
import bodyParser from 'body-parser';
import yargs from 'yargs/yargs';
import { hideBin } from 'yargs/helpers';
import GetManufacturersUsecase from './src/usecases/GetManufacturersUsecase.mjs';
import GetModificationsUsecase from './src/usecases/GetModificationsUsecase.mjs';
import GetTransmissionsUsecase from './src/usecases/GetTransmissionsUsecase.mjs';
import GetModelsUsecase from './src/usecases/GetModelsUsecase.mjs';
import GetDrivesUsecase from './src/usecases/GetDrivesUsecase.mjs';
import GetBodiesUsecase from './src/usecases/GetBodiesUsecase.mjs';
import HeartbeatUsecases from './src/usecases/HeartbeatUsecases.mjs';
import HeartbeatResponse from './src/responses/HeartbeatResponse.mjs';
import Response from './src/responses/Response.mjs';
import {
expressPolyfills,
onError,
onNoMatch,
queryParams,
xforwardMiddleware
} from './libs/middlewares.mjs';
import { handle } from './core.js';
import application from './libs/application.mjs';
const argv = yargs(hideBin(process.argv)).argv;
const port = argv?.p || process.env.HTTP_PORT || 3000;
const host = argv?.H || '127.0.0.1';
const appname = process.env['apps.autocatalogs.appname'];
const handler = nc({ onError, onNoMatch, attachParams: true })
.use(bodyParser.json())
.use(expressPolyfills)
.all(xforwardMiddleware)
.use(queryParams)
.get(`/${appname}`, (req, res) => {
res.setHeader('Content-Type', 'text/plain');
res.writeHead(200);
res.end('OK');
})
.get(`/${appname}/api/manufacturers`, handle(GetManufacturersUsecase, Response))
.get(`/${appname}/api/models`, handle(GetModelsUsecase, Response))
.get(`/${appname}/api/modifications`, handle(GetModificationsUsecase, Response))
.get(`/${appname}/api/drives`, handle(GetDrivesUsecase, Response))
.get(`/${appname}/api/bodies`, handle(GetBodiesUsecase, Response))
.get(`/${appname}/api/transmissions`, handle(GetTransmissionsUsecase, Response))
.get(`/${appname}/heartbeat`, handle(HeartbeatUsecases, HeartbeatResponse));
application.createContainer().then(() => http.createServer(handler).listen(port, host));