nodejs-quickstart-structure 2.0.1 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +64 -66
  3. package/bin/index.js +5 -2
  4. package/lib/generator.js +10 -4
  5. package/lib/modules/app-setup.js +76 -6
  6. package/lib/modules/auth-setup.js +143 -0
  7. package/lib/modules/caching-setup.js +8 -1
  8. package/lib/modules/config-files.js +6 -0
  9. package/lib/modules/database-setup.js +2 -1
  10. package/lib/modules/project-setup.js +1 -0
  11. package/lib/prompts.js +39 -0
  12. package/package.json +5 -4
  13. package/templates/clean-architecture/js/src/domain/models/User.js +3 -1
  14. package/templates/clean-architecture/js/src/index.js.ejs +2 -0
  15. package/templates/clean-architecture/js/src/infrastructure/config/env.js.ejs +12 -3
  16. package/templates/clean-architecture/js/src/infrastructure/repositories/UserRepository.js.ejs +25 -2
  17. package/templates/clean-architecture/js/src/infrastructure/repositories/UserRepository.spec.js.ejs +38 -1
  18. package/templates/clean-architecture/js/src/infrastructure/webserver/server.js.ejs +3 -0
  19. package/templates/clean-architecture/js/src/infrastructure/webserver/server.spec.js.ejs +51 -0
  20. package/templates/clean-architecture/js/src/infrastructure/webserver/swagger.spec.js.ejs +14 -0
  21. package/templates/clean-architecture/js/src/interfaces/controllers/userController.js.ejs +41 -4
  22. package/templates/clean-architecture/js/src/interfaces/controllers/userController.spec.js.ejs +70 -5
  23. package/templates/clean-architecture/js/src/interfaces/graphql/context.js.ejs +13 -6
  24. package/templates/clean-architecture/js/src/interfaces/graphql/context.spec.js.ejs +55 -22
  25. package/templates/clean-architecture/js/src/interfaces/graphql/resolvers/user.resolvers.js.ejs +10 -5
  26. package/templates/clean-architecture/js/src/interfaces/graphql/resolvers/user.resolvers.spec.js.ejs +32 -10
  27. package/templates/clean-architecture/js/src/interfaces/graphql/typeDefs/user.types.js.ejs +1 -1
  28. package/templates/clean-architecture/js/src/interfaces/routes/api.js.ejs +15 -0
  29. package/templates/clean-architecture/js/src/interfaces/routes/api.spec.js.ejs +4 -0
  30. package/templates/clean-architecture/js/src/usecases/CreateUser.js.ejs +34 -0
  31. package/templates/clean-architecture/js/src/usecases/CreateUser.spec.js.ejs +12 -3
  32. package/templates/clean-architecture/js/src/usecases/DeleteUser.js.ejs +27 -0
  33. package/templates/clean-architecture/js/src/usecases/DeleteUser.spec.js.ejs +9 -1
  34. package/templates/clean-architecture/js/src/usecases/GetAllUsers.js.ejs +36 -0
  35. package/templates/clean-architecture/js/src/usecases/GetAllUsers.spec.js.ejs +23 -1
  36. package/templates/clean-architecture/js/src/usecases/GetUserById.js.ejs +36 -0
  37. package/templates/clean-architecture/js/src/usecases/GetUserById.spec.js.ejs +48 -0
  38. package/templates/clean-architecture/js/src/usecases/UpdateUser.js.ejs +28 -0
  39. package/templates/clean-architecture/js/src/usecases/UpdateUser.spec.js.ejs +9 -1
  40. package/templates/clean-architecture/js/src/utils/errorMessages.js +1 -0
  41. package/templates/clean-architecture/js/src/utils/httpCodes.js +2 -0
  42. package/templates/clean-architecture/ts/src/config/env.ts.ejs +12 -3
  43. package/templates/clean-architecture/ts/src/domain/user.ts +3 -1
  44. package/templates/clean-architecture/ts/src/index.ts.ejs +4 -0
  45. package/templates/clean-architecture/ts/src/infrastructure/repositories/UserRepository.spec.ts.ejs +71 -10
  46. package/templates/clean-architecture/ts/src/infrastructure/repositories/userRepository.ts.ejs +32 -3
  47. package/templates/clean-architecture/ts/src/interfaces/controllers/userController.spec.ts.ejs +43 -9
  48. package/templates/clean-architecture/ts/src/interfaces/controllers/userController.ts.ejs +57 -15
  49. package/templates/clean-architecture/ts/src/interfaces/graphql/context.spec.ts.ejs +57 -24
  50. package/templates/clean-architecture/ts/src/interfaces/graphql/context.ts.ejs +14 -8
  51. package/templates/clean-architecture/ts/src/interfaces/graphql/resolvers/user.resolvers.spec.ts.ejs +33 -10
  52. package/templates/clean-architecture/ts/src/interfaces/graphql/resolvers/user.resolvers.ts.ejs +15 -5
  53. package/templates/clean-architecture/ts/src/interfaces/graphql/typeDefs/user.types.ts.ejs +1 -1
  54. package/templates/clean-architecture/ts/src/interfaces/routes/userRoutes.spec.ts.ejs +9 -1
  55. package/templates/clean-architecture/ts/src/interfaces/routes/userRoutes.ts.ejs +16 -0
  56. package/templates/clean-architecture/ts/src/usecases/createUser.spec.ts.ejs +12 -3
  57. package/templates/clean-architecture/ts/src/usecases/createUser.ts.ejs +35 -0
  58. package/templates/clean-architecture/ts/src/usecases/deleteUser.spec.ts.ejs +10 -1
  59. package/templates/clean-architecture/ts/src/usecases/deleteUser.ts.ejs +24 -0
  60. package/templates/clean-architecture/ts/src/usecases/getAllUsers.spec.ts.ejs +9 -1
  61. package/templates/clean-architecture/ts/src/usecases/getAllUsers.ts.ejs +21 -0
  62. package/templates/clean-architecture/ts/src/usecases/getUserById.spec.ts.ejs +55 -0
  63. package/templates/clean-architecture/ts/src/usecases/getUserById.ts.ejs +23 -0
  64. package/templates/clean-architecture/ts/src/usecases/updateUser.spec.ts.ejs +10 -1
  65. package/templates/clean-architecture/ts/src/usecases/updateUser.ts.ejs +25 -0
  66. package/templates/clean-architecture/ts/src/utils/errorMessages.ts +1 -0
  67. package/templates/clean-architecture/ts/src/utils/httpCodes.ts +1 -0
  68. package/templates/common/.cursorrules.ejs +9 -0
  69. package/templates/common/.env.example.ejs +17 -10
  70. package/templates/common/README.md.ejs +63 -18
  71. package/templates/common/auth/js/controllers/authController.js.ejs +170 -0
  72. package/templates/common/auth/js/controllers/authController.spec.js.ejs +148 -0
  73. package/templates/common/auth/js/middleware/authMiddleware.js.ejs +58 -0
  74. package/templates/common/auth/js/middleware/authMiddleware.spec.js.ejs +108 -0
  75. package/templates/common/auth/js/routes/authRoutes.js.ejs +16 -0
  76. package/templates/common/auth/js/services/jwtService.js.ejs +54 -0
  77. package/templates/common/auth/js/services/jwtService.spec.js.ejs +84 -0
  78. package/templates/common/auth/ts/controllers/authController.spec.ts.ejs +161 -0
  79. package/templates/common/auth/ts/controllers/authController.ts.ejs +167 -0
  80. package/templates/common/auth/ts/middleware/authMiddleware.spec.ts.ejs +128 -0
  81. package/templates/common/auth/ts/middleware/authMiddleware.ts.ejs +59 -0
  82. package/templates/common/auth/ts/routes/authRoutes.ts.ejs +20 -0
  83. package/templates/common/auth/ts/services/jwtService.spec.ts.ejs +89 -0
  84. package/templates/common/auth/ts/services/jwtService.ts.ejs +60 -0
  85. package/templates/common/babel.config.js.ejs +5 -0
  86. package/templates/common/caching/clean/js/CreateUser.js.ejs +14 -5
  87. package/templates/common/caching/clean/js/DeleteUser.js.ejs +2 -1
  88. package/templates/common/caching/clean/js/GetUserById.js.ejs +39 -0
  89. package/templates/common/caching/clean/js/UpdateUser.js.ejs +2 -1
  90. package/templates/common/caching/clean/ts/createUser.ts.ejs +14 -6
  91. package/templates/common/caching/clean/ts/deleteUser.ts.ejs +2 -1
  92. package/templates/common/caching/clean/ts/getUserById.ts.ejs +32 -0
  93. package/templates/common/caching/clean/ts/updateUser.ts.ejs +2 -1
  94. package/templates/common/caching/js/memoryCache.spec.js.ejs +2 -0
  95. package/templates/common/caching/js/redisClient.spec.js.ejs +2 -0
  96. package/templates/common/caching/ts/memoryCache.spec.ts.ejs +2 -0
  97. package/templates/common/caching/ts/redisClient.spec.ts.ejs +2 -0
  98. package/templates/common/database/js/models/User.js.ejs +14 -1
  99. package/templates/common/database/js/models/User.js.mongoose.ejs +7 -0
  100. package/templates/common/database/js/models/User.spec.js.ejs +12 -0
  101. package/templates/common/database/js/mongoose.spec.js.ejs +2 -0
  102. package/templates/common/database/ts/models/User.spec.ts.ejs +10 -0
  103. package/templates/common/database/ts/models/User.ts.ejs +17 -0
  104. package/templates/common/database/ts/models/User.ts.mongoose.ejs +8 -0
  105. package/templates/common/database/ts/mongoose.spec.ts.ejs +2 -0
  106. package/templates/common/docker-compose.yml.ejs +12 -0
  107. package/templates/common/ecosystem.config.js.ejs +9 -3
  108. package/templates/common/eslint.config.mjs.ejs +3 -0
  109. package/templates/common/jest.config.js.ejs +13 -9
  110. package/templates/common/kafka/js/messaging/baseConsumer.js.ejs +1 -1
  111. package/templates/common/kafka/js/services/kafkaService.js.ejs +1 -1
  112. package/templates/common/migrations/init.js.ejs +5 -4
  113. package/templates/common/package.json.ejs +11 -2
  114. package/templates/common/prompts/project-context.md.ejs +8 -1
  115. package/templates/common/src/tests/e2e/e2e.users.test.js.ejs +149 -107
  116. package/templates/common/src/tests/e2e/e2e.users.test.ts.ejs +88 -47
  117. package/templates/common/swagger.yml.ejs +148 -0
  118. package/templates/common/tsconfig.eslint.json +15 -0
  119. package/templates/common/tsconfig.json +3 -1
  120. package/templates/common/views/ejs/index.ejs +264 -30
  121. package/templates/common/views/ejs/login.ejs.ejs +244 -0
  122. package/templates/common/views/ejs/signup.ejs.ejs +282 -0
  123. package/templates/common/views/pug/index.pug +269 -38
  124. package/templates/common/views/pug/login.pug.ejs +195 -0
  125. package/templates/common/views/pug/signup.pug.ejs +241 -0
  126. package/templates/db/mysql/V1__Initial_Setup.sql.ejs +6 -0
  127. package/templates/db/postgres/V1__Initial_Setup.sql.ejs +6 -0
  128. package/templates/mvc/js/src/config/env.js.ejs +12 -3
  129. package/templates/mvc/js/src/controllers/userController.js.ejs +29 -5
  130. package/templates/mvc/js/src/controllers/userController.spec.js.ejs +27 -12
  131. package/templates/mvc/js/src/graphql/context.js.ejs +14 -3
  132. package/templates/mvc/js/src/graphql/context.spec.js.ejs +36 -21
  133. package/templates/mvc/js/src/graphql/resolvers/user.resolvers.js.ejs +10 -5
  134. package/templates/mvc/js/src/graphql/resolvers/user.resolvers.spec.js.ejs +32 -10
  135. package/templates/mvc/js/src/graphql/typeDefs/user.types.js.ejs +1 -1
  136. package/templates/mvc/js/src/index.js.ejs +16 -3
  137. package/templates/mvc/js/src/routes/api.js.ejs +14 -0
  138. package/templates/mvc/js/src/routes/api.spec.js.ejs +3 -0
  139. package/templates/mvc/js/src/utils/errorMessages.js +1 -0
  140. package/templates/mvc/js/src/utils/httpCodes.js +1 -0
  141. package/templates/mvc/ts/src/config/env.ts.ejs +12 -3
  142. package/templates/mvc/ts/src/controllers/userController.spec.ts.ejs +95 -7
  143. package/templates/mvc/ts/src/controllers/userController.ts.ejs +68 -11
  144. package/templates/mvc/ts/src/graphql/context.spec.ts.ejs +36 -23
  145. package/templates/mvc/ts/src/graphql/context.ts.ejs +15 -6
  146. package/templates/mvc/ts/src/graphql/resolvers/user.resolvers.spec.ts.ejs +32 -10
  147. package/templates/mvc/ts/src/graphql/resolvers/user.resolvers.ts.ejs +15 -5
  148. package/templates/mvc/ts/src/graphql/typeDefs/user.types.ts.ejs +1 -1
  149. package/templates/mvc/ts/src/index.ts.ejs +15 -3
  150. package/templates/mvc/ts/src/routes/api.spec.ts.ejs +6 -0
  151. package/templates/mvc/ts/src/routes/api.ts.ejs +15 -0
  152. package/templates/mvc/ts/src/utils/errorMessages.ts +1 -0
  153. package/templates/mvc/ts/src/utils/httpCodes.ts +1 -0
  154. package/templates/clean-architecture/js/src/interfaces/routes/api.js +0 -12
  155. package/templates/clean-architecture/js/src/usecases/CreateUser.js +0 -14
  156. package/templates/clean-architecture/js/src/usecases/DeleteUser.js +0 -11
  157. package/templates/clean-architecture/js/src/usecases/GetAllUsers.js +0 -12
  158. package/templates/clean-architecture/js/src/usecases/UpdateUser.js +0 -11
  159. package/templates/clean-architecture/ts/src/interfaces/routes/userRoutes.ts +0 -13
  160. package/templates/clean-architecture/ts/src/usecases/createUser.ts +0 -13
  161. package/templates/clean-architecture/ts/src/usecases/deleteUser.ts +0 -9
  162. package/templates/clean-architecture/ts/src/usecases/getAllUsers.ts +0 -10
  163. package/templates/clean-architecture/ts/src/usecases/updateUser.ts +0 -9
  164. package/templates/mvc/js/src/routes/api.js +0 -10
  165. package/templates/mvc/ts/src/routes/api.ts +0 -12
@@ -12,6 +12,7 @@ import morgan from 'morgan';
12
12
  import { errorMiddleware } from '@/utils/errorMiddleware';
13
13
  import { setupGracefulShutdown } from '@/utils/gracefulShutdown';
14
14
  import healthRoutes from '@/routes/healthRoute';
15
+ <%_ if (auth.includes('JWT')) { -%>import authRoutes from '@/routes/authRoutes';<%_ } -%>
15
16
  <%_ if (communication === 'REST APIs' || communication === 'Kafka') { -%>
16
17
  import apiRoutes from '@/routes/api';
17
18
  import swaggerUi from 'swagger-ui-express';
@@ -52,6 +53,7 @@ const limiter = rateLimit({ windowMs: 10 * 60 * 1000, max: 100 });
52
53
  app.use(limiter);
53
54
 
54
55
  app.use(express.json());
56
+ app.use(express.urlencoded({ extended: true }));
55
57
  app.use(morgan('combined', { stream: { write: (message) => logger.info(message.trim()) } }));
56
58
  <%_ if (communication === 'REST APIs' || communication === 'Kafka') { -%>
57
59
  app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpecs));
@@ -64,15 +66,25 @@ app.set('view engine', '<%= viewEngine.toLowerCase() %>');
64
66
  app.use(express.static(path.join(__dirname, '../public')));<%_ } %>
65
67
  <%_ if (communication === 'REST APIs' || communication === 'Kafka') { -%>
66
68
  app.use('/api', apiRoutes);
67
- <%_ } -%><% if (viewEngine && viewEngine !== 'None') { -%>
69
+ <%_ } -%><%_ if (auth.includes('JWT')) { -%>
70
+ app.use('/api/auth', authRoutes);
71
+ <%_ } -%>
72
+
73
+ <% if (viewEngine && viewEngine !== 'None') { -%>
68
74
  app.get('/', (req: Request, res: Response) => {
69
75
  res.render('index', {
70
- projectName: 'NodeJS Service',
76
+ projectName: '<%= projectName %>',
71
77
  architecture: 'MVC',
72
78
  database: '<%= database %>',
73
- communication: '<%= communication %>'
79
+ communication: '<%= communication %>',
80
+ auth: <%- JSON.stringify(auth) %>
74
81
  });
75
82
  });
83
+
84
+ <%_ if (auth.includes('JWT')) { %>
85
+ app.get('/login', (req: Request, res: Response) => res.render('login', { projectName: '<%= projectName %>' }));
86
+ app.get('/signup', (req: Request, res: Response) => res.render('signup', { projectName: '<%= projectName %>' }));
87
+ <% } -%>
76
88
  <% } -%>
77
89
  app.use('/health', healthRoutes);
78
90
 
@@ -2,6 +2,12 @@ import request from 'supertest';
2
2
  import express, { Express } from 'express';
3
3
  import router from '@/routes/api';
4
4
 
5
+ <%_ if (auth.includes('JWT')) { _%>
6
+ jest.mock('@/middleware/authMiddleware', () => ({
7
+ authMiddleware: jest.fn((req, res, next) => next())
8
+ }));
9
+ <%_ } _%>
10
+
5
11
  const mockGetUsers = jest.fn().mockImplementation((req, res) => res.status(200).json([{ id: '1', name: 'John Doe' }]));
6
12
  const mockCreateUser = jest.fn().mockImplementation((req, res) => res.status(201).json({ id: '1', name: 'Test' }));
7
13
  const mockUpdateUser = jest.fn().mockImplementation((req, res) => res.status(200).json({ id: '1', name: 'Updated' }));
@@ -0,0 +1,15 @@
1
+ import { Router, Request, Response, NextFunction } from 'express';
2
+ import { UserController } from '@/controllers/userController';
3
+ <%_ if (auth.includes('JWT')) { _%>
4
+ import { authMiddleware } from '@/middleware/authMiddleware';
5
+ <%_ } _%>
6
+ const router = Router();
7
+ const userController = new UserController();
8
+
9
+ router.get('/users', <% if (auth.includes('JWT')) { %>authMiddleware, <% } %>(req: Request, res: Response, next: NextFunction) => userController.getUsers(req, res, next));
10
+ router.get('/users/:id', <% if (auth.includes('JWT')) { %>authMiddleware, <% } %>(req: Request, res: Response, next: NextFunction) => userController.getUserById(req, res, next));
11
+ router.post('/users', (req: Request, res: Response, next: NextFunction) => userController.createUser(req, res, next));
12
+ router.patch('/users/:id', <% if (auth.includes('JWT')) { %>authMiddleware, <% } %>(req: Request, res: Response, next: NextFunction) => userController.updateUser(req, res, next));
13
+ router.delete('/users/:id', <% if (auth.includes('JWT')) { %>authMiddleware, <% } %>(req: Request, res: Response, next: NextFunction) => userController.deleteUser(req, res, next));
14
+
15
+ export default router;
@@ -5,6 +5,7 @@ export const ERROR_MESSAGES = {
5
5
  INTERNAL_SERVER_ERROR: 'Internal Server Error',
6
6
  BAD_REQUEST: 'Bad Request',
7
7
  FETCH_USERS_ERROR: 'Error fetching users',
8
+ FETCH_USER_ERROR: 'Error fetching user',
8
9
  CREATE_USER_ERROR: 'Error creating user',
9
10
  UPDATE_USER_ERROR: 'Error updating user',
10
11
  DELETE_USER_ERROR: 'Error deleting user',
@@ -2,6 +2,7 @@ export const HTTP_STATUS = {
2
2
  OK: 200,
3
3
  CREATED: 201,
4
4
  BAD_REQUEST: 400,
5
+ UNAUTHORIZED: 401,
5
6
  NOT_FOUND: 404,
6
7
  INTERNAL_SERVER_ERROR: 500
7
8
  } as const;
@@ -1,12 +0,0 @@
1
- const express = require('express');
2
- const router = express.Router();
3
- const UserController = require('../controllers/userController');
4
-
5
- const userController = new UserController();
6
-
7
- router.post('/users', (req, res, next) => userController.createUser(req, res, next));
8
- router.get('/users', (req, res, next) => userController.getUsers(req, res, next));
9
- router.patch('/users/:id', (req, res, next) => userController.updateUser(req, res, next));
10
- router.delete('/users/:id', (req, res, next) => userController.deleteUser(req, res, next));
11
-
12
- module.exports = router;
@@ -1,14 +0,0 @@
1
- const User = require('../domain/models/User');
2
-
3
- class CreateUser {
4
- constructor(userRepository) {
5
- this.userRepository = userRepository;
6
- }
7
-
8
- async execute(name, email) {
9
- const user = new User(null, name, email);
10
- return await this.userRepository.save(user);
11
- }
12
- }
13
-
14
- module.exports = CreateUser;
@@ -1,11 +0,0 @@
1
- class DeleteUser {
2
- constructor(userRepository) {
3
- this.userRepository = userRepository;
4
- }
5
-
6
- async execute(id) {
7
- return this.userRepository.delete(id);
8
- }
9
- }
10
-
11
- module.exports = DeleteUser;
@@ -1,12 +0,0 @@
1
-
2
- class GetAllUsers {
3
- constructor(userRepository) {
4
- this.userRepository = userRepository;
5
- }
6
-
7
- async execute() {
8
- return await this.userRepository.getUsers();
9
- }
10
- }
11
-
12
- module.exports = GetAllUsers;
@@ -1,11 +0,0 @@
1
- class UpdateUser {
2
- constructor(userRepository) {
3
- this.userRepository = userRepository;
4
- }
5
-
6
- async execute(id, data) {
7
- return this.userRepository.update(id, data);
8
- }
9
- }
10
-
11
- module.exports = UpdateUser;
@@ -1,13 +0,0 @@
1
- import { Router, Request, Response, NextFunction } from 'express';
2
- import { UserController } from '@/interfaces/controllers/userController';
3
-
4
- const router = Router();
5
- const userController = new UserController();
6
-
7
- router.post('/', (req: Request, res: Response, next: NextFunction) => userController.createUser(req, res, next));
8
- router.get('/', (req: Request, res: Response, next: NextFunction) => userController.getUsers(req, res, next));
9
- router.patch('/:id', (req: Request, res: Response, next: NextFunction) => userController.updateUser(req, res, next));
10
- router.delete('/:id', (req: Request, res: Response, next: NextFunction) => userController.deleteUser(req, res, next));
11
-
12
- export default router;
13
-
@@ -1,13 +0,0 @@
1
- import { User } from '@/domain/user';
2
-
3
- import { UserRepository } from '@/infrastructure/repositories/UserRepository';
4
-
5
- export default class CreateUser {
6
- constructor(private userRepository: UserRepository) {}
7
-
8
- async execute(name: string, email: string) {
9
- const user = new User(null, name, email);
10
- return this.userRepository.save(user);
11
- }
12
- }
13
-
@@ -1,9 +0,0 @@
1
- import { UserRepository } from '@/infrastructure/repositories/UserRepository';
2
-
3
- export default class DeleteUser {
4
- constructor(private userRepository: UserRepository) {}
5
-
6
- async execute(id: number | string) {
7
- return this.userRepository.delete(id);
8
- }
9
- }
@@ -1,10 +0,0 @@
1
- import { UserRepository } from '@/infrastructure/repositories/UserRepository';
2
-
3
- export default class GetAllUsers {
4
- constructor(private userRepository: UserRepository) {}
5
-
6
- async execute() {
7
- return this.userRepository.getUsers();
8
- }
9
- }
10
-
@@ -1,9 +0,0 @@
1
- import { UserRepository } from '@/infrastructure/repositories/UserRepository';
2
-
3
- export default class UpdateUser {
4
- constructor(private userRepository: UserRepository) {}
5
-
6
- async execute(id: number | string, data: { name?: string, email?: string }) {
7
- return this.userRepository.update(id, data);
8
- }
9
- }
@@ -1,10 +0,0 @@
1
- const express = require('express');
2
- const router = express.Router();
3
- const userController = require('../controllers/userController');
4
-
5
- router.get('/users', userController.getUsers);
6
- router.post('/users', userController.createUser);
7
- router.patch('/users/:id', userController.updateUser);
8
- router.delete('/users/:id', userController.deleteUser);
9
-
10
- module.exports = router;
@@ -1,12 +0,0 @@
1
- import { Router, Request, Response, NextFunction } from 'express';
2
- import { UserController } from '@/controllers/userController';
3
-
4
- const router = Router();
5
- const userController = new UserController();
6
-
7
- router.get('/users', (req: Request, res: Response, next: NextFunction) => userController.getUsers(req, res, next));
8
- router.post('/users', (req: Request, res: Response, next: NextFunction) => userController.createUser(req, res, next));
9
- router.patch('/users/:id', (req: Request, res: Response, next: NextFunction) => userController.updateUser(req, res, next));
10
- router.delete('/users/:id', (req: Request, res: Response, next: NextFunction) => userController.deleteUser(req, res, next));
11
-
12
- export default router;