-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.ts
More file actions
65 lines (56 loc) · 1.98 KB
/
server.ts
File metadata and controls
65 lines (56 loc) · 1.98 KB
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import express from "express";
import cors from "cors";
import dotenv from "dotenv";
import { TasksRepositoryPrisma } from "./src/repositories/tasks/tasks-repository.ts";
import { TasksServices } from "./src/services/tasks/tasks-service.ts";
import { TasksController } from "./src/controllers/tasks/tasks-controller.ts";
import { NotesController } from "./src/controllers/notes/notes-controller.ts";
import { TasksRoutes } from "./src/routes/tasks/tasks-routes.ts";
import { NotesRoutes } from "./src/routes/notes/notes-routes.ts";
import { TaskValidator } from "./src/validators/tasks/tasks-validator.ts";
import { NotesRepositoryPrisma } from "./src/repositories/notes/notes-repository.ts";
import { NotesService } from "./src/services/notes/notes-service.ts";
import { NotesValidator } from "./src/validators/notes/notes-validator.ts";
dotenv.config();
const env = {
port: process.env.PORT || "3000",
};
const server = express();
// Dependency Injection
const repositories = {
taskRepository: new TasksRepositoryPrisma(),
notesRepository: new NotesRepositoryPrisma(),
};
const services = {
taskService: new TasksServices(repositories["taskRepository"]),
notesService: new NotesService(
repositories["notesRepository"],
repositories["taskRepository"]
),
};
const validators = {
taskValidator: new TaskValidator(),
NotesValidator: new NotesValidator(),
};
const controllers = {
taskController: new TasksController(
services["taskService"],
validators["taskValidator"]
),
notesController: new NotesController(
services["notesService"],
validators["NotesValidator"]
),
};
const routes = {
taskRoutes: new TasksRoutes(express.Router(), controllers["taskController"]),
notesRoutes: new NotesRoutes(
express.Router(),
controllers["notesController"]
),
};
server.use(express.json());
server.use(cors());
server.use(routes.taskRoutes.router);
server.use(routes.notesRoutes.router);
server.listen(env.port, () => console.log(`API ouvindo na porta ${env.port}`));