emilsoftware-utilities 1.3.71 → 1.3.72

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.
@@ -5,7 +5,7 @@
5
5
  * @author mttdev382
6
6
  */
7
7
  import { Options } from "es-node-firebird";
8
- import { Application, Router } from "express";
8
+ import { DynamicModule } from "@nestjs/common";
9
9
  export interface JwtOptions {
10
10
  secret: string;
11
11
  expiresIn: string;
@@ -28,32 +28,5 @@ export interface AccessiOptions {
28
28
  emailOptions: EmailOptions;
29
29
  }
30
30
  export declare class AccessiModule {
31
- private options;
32
- private logger;
33
- private accessiRoutes;
34
- /**
35
- * Crea una nuova istanza del modulo Accessi.
36
- *
37
- * @param {Options} databaseOptions - Le opzioni di configurazione per la connessione al database.
38
- * @param {string} encryptionKey - La chiave di cifratura per la gestione dei dati sensibili.
39
- * @param {JwtOptions} jwtOptions - Le opzioni per la gestione dei token JWT.
40
- * @author mttdev382
41
-
42
- */
43
- constructor(app: Application, options: AccessiOptions);
44
- /**
45
- * Ottiene il router delle rotte per gestire gli accessi.
46
- *
47
- * **Consiglio:** È consigliabile utilizzare questo router nel primo livello della tua applicazione (es. /api/accessi).
48
- * @deprecated A breve questo metodo sparirà, la libreria viene importata automaticamente.
49
- * @returns {Router} Il router con le rotte degli accessi.
50
- * @author mttdev382
51
- */
52
- getAccessiRouter(): Router;
53
- /**
54
- * Inizializza la documentazione di swagger per gli accessi.
55
- * @deprecated A breve questo metodo sparirà, la libreria servirà swagger autonomamente.
56
- * @author mttdev382
57
- */
58
- serveSwaggerDocs(app: Application): void;
31
+ static forRoot(options: AccessiOptions): DynamicModule;
59
32
  }
@@ -1,48 +1,37 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var AccessiModule_1;
2
9
  Object.defineProperty(exports, "__esModule", { value: true });
3
10
  exports.AccessiModule = void 0;
4
- const Logger_1 = require("../Logger");
5
- const SwaggerConfig_1 = require("./swagger/SwaggerConfig");
6
- const inversify_config_1 = require("./inversify.config");
7
- class AccessiModule {
8
- /**
9
- * Crea una nuova istanza del modulo Accessi.
10
- *
11
- * @param {Options} databaseOptions - Le opzioni di configurazione per la connessione al database.
12
- * @param {string} encryptionKey - La chiave di cifratura per la gestione dei dati sensibili.
13
- * @param {JwtOptions} jwtOptions - Le opzioni per la gestione dei token JWT.
14
- * @author mttdev382
15
-
16
- */
17
- constructor(app, options) {
18
- this.options = options;
19
- this.logger = new Logger_1.Logger(AccessiModule.name);
20
- // Configura le opzioni di AccessiModule dentro il container DI
21
- inversify_config_1.container.rebind("AccessiOptions").toConstantValue(this.options);
22
- this.accessiRoutes = inversify_config_1.container.get("IAccessiRoutes");
23
- app.use("/api/accessi", this.getAccessiRouter());
24
- this.logger.info("Serving accessi router under /api/accessi...");
25
- (0, SwaggerConfig_1.serveSwaggerDocs)(app);
11
+ const common_1 = require("@nestjs/common");
12
+ const AccessiController_1 = require("./Controllers/AccessiController");
13
+ const AuthService_1 = require("./Services/AuthService/AuthService");
14
+ const EmailService_1 = require("./Services/EmailService/EmailService");
15
+ const PermissionService_1 = require("./Services/PermissionService/PermissionService");
16
+ const UserService_1 = require("./Services/UserService/UserService");
17
+ let AccessiModule = AccessiModule_1 = class AccessiModule {
18
+ static forRoot(options) {
19
+ return {
20
+ module: AccessiModule_1,
21
+ controllers: [AccessiController_1.AccessiController],
22
+ providers: [
23
+ { provide: 'AccessiOptions', useValue: options },
24
+ UserService_1.UserService,
25
+ AuthService_1.AuthService,
26
+ EmailService_1.EmailService,
27
+ PermissionService_1.PermissionService,
28
+ ],
29
+ exports: ['AccessiOptions'],
30
+ };
26
31
  }
27
- /**
28
- * Ottiene il router delle rotte per gestire gli accessi.
29
- *
30
- * **Consiglio:** È consigliabile utilizzare questo router nel primo livello della tua applicazione (es. /api/accessi).
31
- * @deprecated A breve questo metodo sparirà, la libreria viene importata automaticamente.
32
- * @returns {Router} Il router con le rotte degli accessi.
33
- * @author mttdev382
34
- */
35
- getAccessiRouter() {
36
- this.logger.info(`Importazione delle rotte di 'ACCESSI', è consigliabile utilizzarle nel primo livello della tua applicazione (es. /api/accessi).`);
37
- return this.accessiRoutes.router;
38
- }
39
- /**
40
- * Inizializza la documentazione di swagger per gli accessi.
41
- * @deprecated A breve questo metodo sparirà, la libreria servirà swagger autonomamente.
42
- * @author mttdev382
43
- */
44
- serveSwaggerDocs(app) {
45
- (0, SwaggerConfig_1.serveSwaggerDocs)(app);
46
- }
47
- }
32
+ };
48
33
  exports.AccessiModule = AccessiModule;
34
+ exports.AccessiModule = AccessiModule = AccessiModule_1 = __decorate([
35
+ (0, common_1.Global)(),
36
+ (0, common_1.Module)({})
37
+ ], AccessiModule);
@@ -1,52 +1,29 @@
1
- import { Request, Response } from "express";
2
- import { IAuthService } from "../Services/AuthService/IAuthService";
3
- import { IEmailService } from "../Services/EmailService/IEmailService";
4
- import { IPermissionService } from "../Services/PermissionService/IPermissionService";
5
- import { IUserService } from "../Services/UserService/IUserService";
6
- import { AccessiControllerBase } from "./AccessiControllerBase";
7
- import { AccessiOptions } from "../AccessiModule";
8
- /**
9
- * Controller per la gestione degli accessi e delle operazioni correlate.
10
- * Fornisce metodi per login, registrazione, crittografia, decrittografia e gestione delle autorizzazioni utente.
11
- */
12
- export declare class AccessiController implements AccessiControllerBase {
13
- private userService;
14
- private permissionService;
15
- private authService;
16
- private emailService;
17
- private accessiOptions;
18
- constructor(userService: IUserService, permissionService: IPermissionService, authService: IAuthService, emailService: IEmailService, accessiOptions: AccessiOptions);
19
- getUserByToken(req: Request<{}, {}, {
20
- token: string;
21
- }>, res: Response): Promise<Response<any, Record<string, any>>>;
22
- login(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
23
- getUsers(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
24
- deleteUser(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
25
- register(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
26
- encrypt(req: Request<{}, {}, {
27
- data: string;
28
- }>, res: Response): Promise<Response<any, Record<string, any>>>;
29
- decrypt(req: Request<{}, {}, {
30
- data: string;
31
- }>, res: Response): Promise<Response<any, Record<string, any>>>;
32
- resetAbilitazioni(req: Request<{}, {}, {
33
- codiceUtente: string;
34
- }>, res: Response): Promise<Response<any, Record<string, any>>>;
35
- setPassword(req: Request<{}, {}, {
1
+ import { Response } from 'express';
2
+ import { AccessiOptions } from '../AccessiModule';
3
+ import { AuthService } from '../Services/AuthService/AuthService';
4
+ import { PermissionService } from '../Services/PermissionService/PermissionService';
5
+ import { UserService } from '../Services/UserService/UserService';
6
+ export declare class AccessiController {
7
+ private readonly userService;
8
+ private readonly authService;
9
+ private readonly permissionService;
10
+ private readonly options;
11
+ constructor(userService: UserService, authService: AuthService, permissionService: PermissionService, options: AccessiOptions);
12
+ getUserByToken(token: string, res: Response): Promise<Response<any, Record<string, any>>>;
13
+ login(loginDto: {
14
+ username: string;
15
+ password: string;
16
+ }, res: Response): Promise<Response<any, Record<string, any>>>;
17
+ getUsers(res: Response): Promise<Response<any, Record<string, any>>>;
18
+ deleteUser(codiceUtente: string, res: Response): Promise<Response<any, Record<string, any>>>;
19
+ register(request: any, res: Response): Promise<Response<any, Record<string, any>>>;
20
+ encrypt(data: string, res: Response): Promise<Response<any, Record<string, any>>>;
21
+ decrypt(data: string, res: Response): Promise<Response<any, Record<string, any>>>;
22
+ resetAbilitazioni(codiceUtente: string, res: Response): Promise<Response<any, Record<string, any>>>;
23
+ setPassword(request: {
36
24
  codiceUtente: string;
37
25
  nuovaPassword: string;
38
- }>, res: Response): Promise<Response<any, Record<string, any>>>;
39
- updateUtente(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
40
- setGdpr(req: Request<{}, {}, {
41
- codiceUtente: string;
42
- }>, res: Response): Promise<Response<any, Record<string, any>>>;
43
- verifyEmail(req: Request<{
44
- token: string;
45
- }>, res: Response): Promise<Response<any, Record<string, any>>>;
46
- requestPasswordReset(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
47
- resetPassword(req: Request<{
48
- token: string;
49
- }, {}, {
50
- newPassword: string;
51
- }>, res: Response): Promise<Response<any, Record<string, any>>>;
26
+ }, res: Response): Promise<Response<any, Record<string, any>>>;
27
+ updateUtente(user: any, res: Response): Promise<Response<any, Record<string, any>>>;
28
+ setGdpr(codiceUtente: string, res: Response): Promise<Response<any, Record<string, any>>>;
52
29
  }
@@ -1,10 +1,43 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
2
18
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
19
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
20
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
21
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
22
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
23
  };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
8
41
  var __metadata = (this && this.__metadata) || function (k, v) {
9
42
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
43
  };
@@ -20,40 +53,31 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
20
53
  step((generator = generator.apply(thisArg, _arguments || [])).next());
21
54
  });
22
55
  };
23
- var __importDefault = (this && this.__importDefault) || function (mod) {
24
- return (mod && mod.__esModule) ? mod : { "default": mod };
25
- };
26
56
  var AccessiController_1;
27
57
  Object.defineProperty(exports, "__esModule", { value: true });
28
58
  exports.AccessiController = void 0;
29
- const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
30
- const autobind_1 = require("../../autobind");
59
+ const common_1 = require("@nestjs/common");
60
+ const swagger_1 = require("@nestjs/swagger");
61
+ const jwt = __importStar(require("jsonwebtoken"));
31
62
  const Utilities_1 = require("../../Utilities");
32
- const inversify_1 = require("inversify");
33
- /**
34
- * Controller per la gestione degli accessi e delle operazioni correlate.
35
- * Fornisce metodi per login, registrazione, crittografia, decrittografia e gestione delle autorizzazioni utente.
36
- */
63
+ const AuthService_1 = require("../Services/AuthService/AuthService");
64
+ const PermissionService_1 = require("../Services/PermissionService/PermissionService");
65
+ const UserService_1 = require("../Services/UserService/UserService");
37
66
  let AccessiController = AccessiController_1 = class AccessiController {
38
- constructor(userService, permissionService, authService, emailService, accessiOptions) {
67
+ constructor(userService, authService, permissionService, options) {
39
68
  this.userService = userService;
40
- this.permissionService = permissionService;
41
69
  this.authService = authService;
42
- this.emailService = emailService;
43
- this.accessiOptions = accessiOptions;
70
+ this.permissionService = permissionService;
71
+ this.options = options;
44
72
  }
45
- getUserByToken(req, res) {
73
+ getUserByToken(token, res) {
46
74
  return __awaiter(this, void 0, void 0, function* () {
47
75
  try {
48
- const { token } = req.body;
49
- if (!token) {
50
- return Utilities_1.RestUtilities.sendErrorMessage(res, "Token non fornito", AccessiController_1.name);
51
- }
52
- // Decodifica il token JWT
53
- const decoded = jsonwebtoken_1.default.verify(token, this.accessiOptions.jwtOptions.secret);
54
- if (!decoded) {
76
+ if (!token)
77
+ return Utilities_1.RestUtilities.sendErrorMessage(res, 'Token non fornito', AccessiController_1.name);
78
+ const decoded = jwt.verify(token, this.options.jwtOptions.secret);
79
+ if (!decoded)
55
80
  return Utilities_1.RestUtilities.sendUnauthorized(res);
56
- }
57
81
  return Utilities_1.RestUtilities.sendBaseResponse(res, { userData: decoded });
58
82
  }
59
83
  catch (error) {
@@ -61,17 +85,16 @@ let AccessiController = AccessiController_1 = class AccessiController {
61
85
  }
62
86
  });
63
87
  }
64
- login(req, res) {
88
+ login(loginDto, res) {
65
89
  return __awaiter(this, void 0, void 0, function* () {
66
90
  try {
67
- let request = req.body;
68
- const userData = yield this.authService.login(request);
91
+ const userData = yield this.authService.login(loginDto);
69
92
  if (!userData)
70
93
  return Utilities_1.RestUtilities.sendInvalidCredentials(res);
71
94
  userData.token = {
72
- expiresIn: this.accessiOptions.jwtOptions.expiresIn,
73
- value: jsonwebtoken_1.default.sign({ userData }, this.accessiOptions.jwtOptions.secret, { expiresIn: this.accessiOptions.jwtOptions.expiresIn }),
74
- type: "Bearer"
95
+ expiresIn: this.options.jwtOptions.expiresIn,
96
+ value: jwt.sign({ userData }, this.options.jwtOptions.secret, { expiresIn: this.options.jwtOptions.expiresIn }),
97
+ type: 'Bearer',
75
98
  };
76
99
  return Utilities_1.RestUtilities.sendBaseResponse(res, userData);
77
100
  }
@@ -80,7 +103,7 @@ let AccessiController = AccessiController_1 = class AccessiController {
80
103
  }
81
104
  });
82
105
  }
83
- getUsers(req, res) {
106
+ getUsers(res) {
84
107
  return __awaiter(this, void 0, void 0, function* () {
85
108
  try {
86
109
  const users = yield this.userService.getUsers();
@@ -91,38 +114,34 @@ let AccessiController = AccessiController_1 = class AccessiController {
91
114
  }
92
115
  });
93
116
  }
94
- deleteUser(req, res) {
117
+ deleteUser(codiceUtente, res) {
95
118
  return __awaiter(this, void 0, void 0, function* () {
96
119
  try {
97
- const { codiceUtente } = req.body;
98
- if (!codiceUtente) {
120
+ if (!codiceUtente)
99
121
  throw new Error('Il campo "Codice Utente" è obbligatorio.');
100
- }
101
122
  yield this.userService.deleteUser(codiceUtente);
102
- return Utilities_1.RestUtilities.sendOKMessage(res, "L'utente è stato eliminato con successo.");
123
+ return Utilities_1.RestUtilities.sendOKMessage(res, 'L\'utente è stato eliminato con successo.');
103
124
  }
104
125
  catch (error) {
105
126
  return Utilities_1.RestUtilities.sendErrorMessage(res, error);
106
127
  }
107
128
  });
108
129
  }
109
- register(req, res) {
130
+ register(request, res) {
110
131
  return __awaiter(this, void 0, void 0, function* () {
111
132
  try {
112
- let request = req.body;
113
133
  yield this.userService.register(request);
114
- return Utilities_1.RestUtilities.sendOKMessage(res, "L'utente è stato registrato con successo.");
134
+ return Utilities_1.RestUtilities.sendOKMessage(res, 'L\'utente è stato registrato con successo.');
115
135
  }
116
136
  catch (error) {
117
137
  return Utilities_1.RestUtilities.sendErrorMessage(res, error, AccessiController_1.name);
118
138
  }
119
139
  });
120
140
  }
121
- encrypt(req, res) {
141
+ encrypt(data, res) {
122
142
  return __awaiter(this, void 0, void 0, function* () {
123
143
  try {
124
- const key = this.accessiOptions.encryptionKey;
125
- let encryptedData = Utilities_1.CryptUtilities.encrypt(req.body.data, key);
144
+ const encryptedData = Utilities_1.CryptUtilities.encrypt(data, this.options.encryptionKey);
126
145
  return Utilities_1.RestUtilities.sendBaseResponse(res, encryptedData);
127
146
  }
128
147
  catch (error) {
@@ -130,11 +149,10 @@ let AccessiController = AccessiController_1 = class AccessiController {
130
149
  }
131
150
  });
132
151
  }
133
- decrypt(req, res) {
152
+ decrypt(data, res) {
134
153
  return __awaiter(this, void 0, void 0, function* () {
135
154
  try {
136
- const key = this.accessiOptions.encryptionKey;
137
- let decryptedData = Utilities_1.CryptUtilities.decrypt(req.body.data, key);
155
+ const decryptedData = Utilities_1.CryptUtilities.decrypt(data, this.options.encryptionKey);
138
156
  return Utilities_1.RestUtilities.sendBaseResponse(res, decryptedData);
139
157
  }
140
158
  catch (error) {
@@ -142,78 +160,44 @@ let AccessiController = AccessiController_1 = class AccessiController {
142
160
  }
143
161
  });
144
162
  }
145
- resetAbilitazioni(req, res) {
163
+ resetAbilitazioni(codiceUtente, res) {
146
164
  return __awaiter(this, void 0, void 0, function* () {
147
165
  try {
148
- yield this.permissionService.resetAbilitazioni(req.body.codiceUtente);
149
- return Utilities_1.RestUtilities.sendOKMessage(res, `Le abilitazioni dell'utente ${req.body.codiceUtente} sono state resettate con successo.`);
166
+ yield this.permissionService.resetAbilitazioni(codiceUtente);
167
+ return Utilities_1.RestUtilities.sendOKMessage(res, `Le abilitazioni dell'utente ${codiceUtente} sono state resettate con successo.`);
150
168
  }
151
169
  catch (error) {
152
170
  return Utilities_1.RestUtilities.sendErrorMessage(res, error, AccessiController_1.name);
153
171
  }
154
172
  });
155
173
  }
156
- setPassword(req, res) {
174
+ setPassword(request, res) {
157
175
  return __awaiter(this, void 0, void 0, function* () {
158
176
  try {
159
- yield this.authService.setPassword(req.body.codiceUtente, req.body.nuovaPassword);
160
- return Utilities_1.RestUtilities.sendOKMessage(res, `La password dell'utente ${req.body.codiceUtente} è stata impostata correttamente.`);
177
+ yield this.authService.setPassword(request.codiceUtente, request.nuovaPassword);
178
+ return Utilities_1.RestUtilities.sendOKMessage(res, `La password dell'utente ${request.codiceUtente} è stata impostata correttamente.`);
161
179
  }
162
180
  catch (error) {
163
181
  return Utilities_1.RestUtilities.sendErrorMessage(res, error, AccessiController_1.name);
164
182
  }
165
183
  });
166
184
  }
167
- updateUtente(req, res) {
185
+ updateUtente(user, res) {
168
186
  return __awaiter(this, void 0, void 0, function* () {
169
187
  try {
170
- let user = req.body;
171
188
  yield this.userService.updateUser(user);
172
- return Utilities_1.RestUtilities.sendOKMessage(res, `L'utente ${req.body.codiceUtente} è stato aggiornato con successo.`);
173
- }
174
- catch (error) {
175
- return Utilities_1.RestUtilities.sendErrorMessage(res, error, AccessiController_1.name);
176
- }
177
- });
178
- }
179
- setGdpr(req, res) {
180
- return __awaiter(this, void 0, void 0, function* () {
181
- try {
182
- yield this.userService.setGdpr(req.body.codiceUtente);
183
- return Utilities_1.RestUtilities.sendOKMessage(res, `L'utente ${req.body.codiceUtente} ha accettato il GDRP.`);
184
- }
185
- catch (error) {
186
- return Utilities_1.RestUtilities.sendErrorMessage(res, error, AccessiController_1.name);
187
- }
188
- });
189
- }
190
- verifyEmail(req, res) {
191
- return __awaiter(this, void 0, void 0, function* () {
192
- try {
193
- yield this.userService.verifyEmail(req.params.token);
194
- return Utilities_1.RestUtilities.sendOKMessage(res, "Email verificata con successo!");
195
- }
196
- catch (error) {
197
- return Utilities_1.RestUtilities.sendErrorMessage(res, error, AccessiController_1.name);
198
- }
199
- });
200
- }
201
- requestPasswordReset(req, res) {
202
- return __awaiter(this, void 0, void 0, function* () {
203
- try {
204
- yield this.emailService.sendPasswordResetEmail(req.body.email, req.headers.origin);
205
- return Utilities_1.RestUtilities.sendOKMessage(res, "Email di reset inviata!");
189
+ return Utilities_1.RestUtilities.sendOKMessage(res, `L'utente ${user.codiceUtente} è stato aggiornato con successo.`);
206
190
  }
207
191
  catch (error) {
208
192
  return Utilities_1.RestUtilities.sendErrorMessage(res, error, AccessiController_1.name);
209
193
  }
210
194
  });
211
195
  }
212
- resetPassword(req, res) {
196
+ setGdpr(codiceUtente, res) {
213
197
  return __awaiter(this, void 0, void 0, function* () {
214
198
  try {
215
- yield this.authService.resetPassword(req.params.token, req.body.newPassword);
216
- return Utilities_1.RestUtilities.sendOKMessage(res, "Password aggiornata con successo!");
199
+ yield this.userService.setGdpr(codiceUtente);
200
+ return Utilities_1.RestUtilities.sendOKMessage(res, `L'utente ${codiceUtente} ha accettato il GDPR.`);
217
201
  }
218
202
  catch (error) {
219
203
  return Utilities_1.RestUtilities.sendErrorMessage(res, error, AccessiController_1.name);
@@ -222,12 +206,109 @@ let AccessiController = AccessiController_1 = class AccessiController {
222
206
  }
223
207
  };
224
208
  exports.AccessiController = AccessiController;
209
+ __decorate([
210
+ (0, swagger_1.ApiOperation)({ summary: 'Recupera le informazioni utente dal token JWT' }),
211
+ (0, common_1.Post)('get-user-by-token'),
212
+ __param(0, (0, common_1.Body)('token')),
213
+ __param(1, (0, common_1.Res)()),
214
+ __metadata("design:type", Function),
215
+ __metadata("design:paramtypes", [String, Object]),
216
+ __metadata("design:returntype", Promise)
217
+ ], AccessiController.prototype, "getUserByToken", null);
218
+ __decorate([
219
+ (0, swagger_1.ApiOperation)({ summary: 'Effettua il login' }),
220
+ (0, common_1.Post)('login'),
221
+ __param(0, (0, common_1.Body)()),
222
+ __param(1, (0, common_1.Res)()),
223
+ __metadata("design:type", Function),
224
+ __metadata("design:paramtypes", [Object, Object]),
225
+ __metadata("design:returntype", Promise)
226
+ ], AccessiController.prototype, "login", null);
227
+ __decorate([
228
+ (0, swagger_1.ApiOperation)({ summary: 'Recupera la lista degli utenti' }),
229
+ (0, common_1.Get)('users'),
230
+ __param(0, (0, common_1.Res)()),
231
+ __metadata("design:type", Function),
232
+ __metadata("design:paramtypes", [Object]),
233
+ __metadata("design:returntype", Promise)
234
+ ], AccessiController.prototype, "getUsers", null);
235
+ __decorate([
236
+ (0, swagger_1.ApiOperation)({ summary: 'Elimina un utente' }),
237
+ (0, common_1.Post)('delete-user'),
238
+ __param(0, (0, common_1.Body)('codiceUtente')),
239
+ __param(1, (0, common_1.Res)()),
240
+ __metadata("design:type", Function),
241
+ __metadata("design:paramtypes", [String, Object]),
242
+ __metadata("design:returntype", Promise)
243
+ ], AccessiController.prototype, "deleteUser", null);
244
+ __decorate([
245
+ (0, swagger_1.ApiOperation)({ summary: 'Registra un nuovo utente' }),
246
+ (0, common_1.Post)('register'),
247
+ __param(0, (0, common_1.Body)()),
248
+ __param(1, (0, common_1.Res)()),
249
+ __metadata("design:type", Function),
250
+ __metadata("design:paramtypes", [Object, Object]),
251
+ __metadata("design:returntype", Promise)
252
+ ], AccessiController.prototype, "register", null);
253
+ __decorate([
254
+ (0, swagger_1.ApiOperation)({ summary: 'Crittografa i dati' }),
255
+ (0, common_1.Post)('encrypt'),
256
+ __param(0, (0, common_1.Body)('data')),
257
+ __param(1, (0, common_1.Res)()),
258
+ __metadata("design:type", Function),
259
+ __metadata("design:paramtypes", [String, Object]),
260
+ __metadata("design:returntype", Promise)
261
+ ], AccessiController.prototype, "encrypt", null);
262
+ __decorate([
263
+ (0, swagger_1.ApiOperation)({ summary: 'Decrittografa i dati' }),
264
+ (0, common_1.Post)('decrypt'),
265
+ __param(0, (0, common_1.Body)('data')),
266
+ __param(1, (0, common_1.Res)()),
267
+ __metadata("design:type", Function),
268
+ __metadata("design:paramtypes", [String, Object]),
269
+ __metadata("design:returntype", Promise)
270
+ ], AccessiController.prototype, "decrypt", null);
271
+ __decorate([
272
+ (0, swagger_1.ApiOperation)({ summary: 'Resetta le abilitazioni di un utente' }),
273
+ (0, common_1.Post)('reset-abilitazioni'),
274
+ __param(0, (0, common_1.Body)('codiceUtente')),
275
+ __param(1, (0, common_1.Res)()),
276
+ __metadata("design:type", Function),
277
+ __metadata("design:paramtypes", [String, Object]),
278
+ __metadata("design:returntype", Promise)
279
+ ], AccessiController.prototype, "resetAbilitazioni", null);
280
+ __decorate([
281
+ (0, swagger_1.ApiOperation)({ summary: 'Imposta una nuova password' }),
282
+ (0, common_1.Post)('set-password'),
283
+ __param(0, (0, common_1.Body)()),
284
+ __param(1, (0, common_1.Res)()),
285
+ __metadata("design:type", Function),
286
+ __metadata("design:paramtypes", [Object, Object]),
287
+ __metadata("design:returntype", Promise)
288
+ ], AccessiController.prototype, "setPassword", null);
289
+ __decorate([
290
+ (0, swagger_1.ApiOperation)({ summary: 'Aggiorna un utente esistente' }),
291
+ (0, common_1.Post)('update-utente'),
292
+ __param(0, (0, common_1.Body)()),
293
+ __param(1, (0, common_1.Res)()),
294
+ __metadata("design:type", Function),
295
+ __metadata("design:paramtypes", [Object, Object]),
296
+ __metadata("design:returntype", Promise)
297
+ ], AccessiController.prototype, "updateUtente", null);
298
+ __decorate([
299
+ (0, swagger_1.ApiOperation)({ summary: 'Imposta il consenso GDPR' }),
300
+ (0, common_1.Post)('set-gdpr'),
301
+ __param(0, (0, common_1.Body)('codiceUtente')),
302
+ __param(1, (0, common_1.Res)()),
303
+ __metadata("design:type", Function),
304
+ __metadata("design:paramtypes", [String, Object]),
305
+ __metadata("design:returntype", Promise)
306
+ ], AccessiController.prototype, "setGdpr", null);
225
307
  exports.AccessiController = AccessiController = AccessiController_1 = __decorate([
226
- autobind_1.autobind,
227
- __param(0, (0, inversify_1.inject)("IUserService")),
228
- __param(1, (0, inversify_1.inject)("IPermissionService")),
229
- __param(2, (0, inversify_1.inject)("IAuthService")),
230
- __param(3, (0, inversify_1.inject)("IEmailService")),
231
- __param(4, (0, inversify_1.inject)("AccessiOptions")),
232
- __metadata("design:paramtypes", [Object, Object, Object, Object, Object])
308
+ (0, swagger_1.ApiTags)('Accessi'),
309
+ (0, common_1.Controller)('accessi'),
310
+ __param(3, (0, common_1.Inject)('AccessiOptions')),
311
+ __metadata("design:paramtypes", [UserService_1.UserService,
312
+ AuthService_1.AuthService,
313
+ PermissionService_1.PermissionService, Object])
233
314
  ], AccessiController);
@@ -1,3 +1,6 @@
1
+ import { Application } from "express";
2
+ import { AccessiOptions } from "./AccessiModule";
1
3
  export { StatoRegistrazione } from "./models/StatoRegistrazione";
2
4
  export { AccessiModule } from "./AccessiModule";
3
5
  export { ILoginResult } from "./Services/AuthService/IAuthService";
6
+ export declare function initializeAccessiModule(app: Application, options: AccessiOptions): Promise<void>;
@@ -1,7 +1,29 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.AccessiModule = exports.StatoRegistrazione = void 0;
13
+ exports.initializeAccessiModule = initializeAccessiModule;
14
+ const AccessiModule_1 = require("./AccessiModule");
15
+ const core_1 = require("@nestjs/core");
16
+ const platform_express_1 = require("@nestjs/platform-express");
17
+ const SwaggerConfig_1 = require("./swagger/SwaggerConfig");
4
18
  var StatoRegistrazione_1 = require("./models/StatoRegistrazione");
5
19
  Object.defineProperty(exports, "StatoRegistrazione", { enumerable: true, get: function () { return StatoRegistrazione_1.StatoRegistrazione; } });
6
- var AccessiModule_1 = require("./AccessiModule");
7
- Object.defineProperty(exports, "AccessiModule", { enumerable: true, get: function () { return AccessiModule_1.AccessiModule; } });
20
+ var AccessiModule_2 = require("./AccessiModule");
21
+ Object.defineProperty(exports, "AccessiModule", { enumerable: true, get: function () { return AccessiModule_2.AccessiModule; } });
22
+ function initializeAccessiModule(app, options) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const nestApp = yield core_1.NestFactory.create(AccessiModule_1.AccessiModule.forRoot(options), new platform_express_1.ExpressAdapter(app));
25
+ yield nestApp.init();
26
+ // Attiva automaticamente Swagger
27
+ (0, SwaggerConfig_1.serveSwaggerDocs)(nestApp);
28
+ });
29
+ }
@@ -1,2 +1,3 @@
1
1
  import { Application } from 'express';
2
- export declare function serveSwaggerDocs(app: Application): void;
2
+ import { INestApplication } from '@nestjs/common';
3
+ export declare function serveSwaggerDocs(app: INestApplication | Application): void;
@@ -1,34 +1,14 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.serveSwaggerDocs = serveSwaggerDocs;
7
- const swagger_jsdoc_1 = __importDefault(require("swagger-jsdoc"));
8
- const swagger_ui_express_1 = __importDefault(require("swagger-ui-express"));
9
- const path_1 = __importDefault(require("path"));
10
- // Definisci la configurazione di Swagger
11
- const swaggerDefinition = {
12
- openapi: '3.0.0',
13
- info: {
14
- title: 'Accessi API',
15
- version: '1.0.0',
16
- description: 'Documentazione delle API per la gestione degli accessi',
17
- },
18
- servers: [
19
- {
20
- url: 'http://localhost:3000/api/accessi', // Modifica se necessario
21
- },
22
- ],
23
- };
24
- const options = {
25
- swaggerDefinition,
26
- // Specifica i file sorgenti che contengono le annotazioni Swagger
27
- apis: [path_1.default.resolve(__dirname, '../../../dist/accessi-module/**/*.js')],
28
- };
29
- // Funzione per esporre la documentazione Swagger tramite Express
4
+ const swagger_1 = require("@nestjs/swagger");
30
5
  function serveSwaggerDocs(app) {
31
- // Crea il documento Swagger
32
- const swaggerSpec = (0, swagger_jsdoc_1.default)(options);
33
- app.use('/swagger/accessi', swagger_ui_express_1.default.serve, swagger_ui_express_1.default.setup(swaggerSpec));
6
+ const config = new swagger_1.DocumentBuilder()
7
+ .setTitle('Accessi API')
8
+ .setDescription('Documentazione delle API per la gestione degli accessi')
9
+ .setVersion('1.0')
10
+ .addServer('http://localhost:3000/api/accessi') // Cambia se necessario
11
+ .build();
12
+ const document = swagger_1.SwaggerModule.createDocument(app, config);
13
+ swagger_1.SwaggerModule.setup('/swagger/accessi', app, document);
34
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "emilsoftware-utilities",
3
- "version": "1.3.71",
3
+ "version": "1.3.72",
4
4
  "description": "Utilities for EmilSoftware",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -22,7 +22,13 @@
22
22
  },
23
23
  "homepage": "https://github.com/mttdev382/emilsoftware-utilities#readme",
24
24
  "dependencies": {
25
+ "@nestjs/common": "^11.0.11",
26
+ "@nestjs/core": "^11.0.11",
27
+ "@nestjs/platform-express": "^11.0.11",
28
+ "@nestjs/swagger": "^11.0.6",
25
29
  "axios": "^1.7.9",
30
+ "class-transformer": "^0.5.1",
31
+ "class-validator": "^0.14.1",
26
32
  "colorette": "^2.0.20",
27
33
  "es-node-firebird": "^1.2.6",
28
34
  "inversify": "^6.2.2",
@@ -1,387 +0,0 @@
1
- import { Request, Response } from "express";
2
- /**
3
- * Controller per la gestione degli accessi e delle operazioni correlate.
4
- * Fornisce metodi per login, registrazione, crittografia, decrittografia e gestione delle autorizzazioni utente.
5
- */
6
- export declare abstract class AccessiControllerBase {
7
- constructor();
8
- /**
9
- * @swagger
10
- * /get-user-by-token:
11
- * post:
12
- * summary: Recupera le informazioni utente dal token JWT
13
- * description: Estrae e restituisce le informazioni utente decodificate da un token JWT valido.
14
- * requestBody:
15
- * required: true
16
- * content:
17
- * application/json:
18
- * schema:
19
- * type: object
20
- * properties:
21
- * token:
22
- * type: string
23
- * required:
24
- * - token
25
- * responses:
26
- * 200:
27
- * description: Informazioni utente recuperate con successo
28
- * content:
29
- * application/json:
30
- * schema:
31
- * type: object
32
- * properties:
33
- * userData:
34
- * type: object
35
- * 400:
36
- * description: Token non valido o assente
37
- * 500:
38
- * description: Errore del server
39
- */
40
- abstract getUserByToken(req: Request<{}, {}, {
41
- token: string;
42
- }>, res: Response): any;
43
- /**
44
- * @swagger
45
- * /login:
46
- * post:
47
- * summary: Effettua il login di un utente
48
- * description: Autentica un utente e restituisce un token JWT.
49
- * requestBody:
50
- * required: true
51
- * content:
52
- * application/json:
53
- * schema:
54
- * type: object
55
- * properties:
56
- * username:
57
- * type: string
58
- * password:
59
- * type: string
60
- * required:
61
- * - username
62
- * - password
63
- * responses:
64
- * 200:
65
- * description: Login effettuato con successo
66
- * content:
67
- * application/json:
68
- * schema:
69
- * type: string
70
- * example: 'jwt_token_here'
71
- * 400:
72
- * description: Credenziali errate
73
- * 500:
74
- * description: Errore del server
75
- */
76
- abstract login(req: Request, res: Response): any;
77
- /**
78
- * @swagger
79
- * /users:
80
- * get:
81
- * summary: Recupera la lista degli utenti
82
- * description: Restituisce una lista di utenti dal sistema.
83
- * responses:
84
- * 200:
85
- * description: Lista degli utenti recuperata con successo
86
- * content:
87
- * application/json:
88
- * schema:
89
- * type: array
90
- * items:
91
- * type: object
92
- * properties:
93
- * id:
94
- * type: string
95
- * description: ID univoco dell'utente
96
- * name:
97
- * type: string
98
- * description: Nome dell'utente
99
- * email:
100
- * type: string
101
- * description: Email dell'utente
102
- * 400:
103
- * description: Richiesta non valida
104
- * 500:
105
- * description: Errore del server
106
- */
107
- abstract getUsers(req: Request, res: Response): any;
108
- /**
109
- * @swagger
110
- * /users/{id}:
111
- * delete:
112
- * summary: Elimina un utente
113
- * description: Elimina un utente dal sistema utilizzando il suo ID univoco.
114
- * parameters:
115
- * - in: path
116
- * name: id
117
- * required: true
118
- * description: ID univoco dell'utente da eliminare
119
- * schema:
120
- * type: string
121
- * responses:
122
- * 200:
123
- * description: Utente eliminato con successo
124
- * 400:
125
- * description: Richiesta non valida
126
- * 404:
127
- * description: Utente non trovato
128
- * 500:
129
- * description: Errore del server
130
- */
131
- abstract deleteUser(req: Request, res: Response): any;
132
- /**
133
- * @swagger
134
- * /register:
135
- * post:
136
- * summary: Registra un nuovo utente
137
- * description: Registra un nuovo utente nel sistema.
138
- * requestBody:
139
- * required: true
140
- * content:
141
- * application/json:
142
- * schema:
143
- * type: object
144
- * properties:
145
- * username:
146
- * type: string
147
- * password:
148
- * type: string
149
- * email:
150
- * type: string
151
- * required:
152
- * - username
153
- * - password
154
- * - email
155
- * responses:
156
- * 200:
157
- * description: Utente registrato con successo
158
- * 400:
159
- * description: Dati di registrazione non validi
160
- * 500:
161
- * description: Errore del server
162
- */
163
- abstract register(req: Request, res: Response): any;
164
- /**
165
- * @swagger
166
- * /encrypt:
167
- * post:
168
- * summary: Crittografa i dati forniti
169
- * description: Crittografa i dati passati nel corpo della richiesta.
170
- * requestBody:
171
- * required: true
172
- * content:
173
- * application/json:
174
- * schema:
175
- * type: object
176
- * properties:
177
- * data:
178
- * type: string
179
- * required:
180
- * - data
181
- * responses:
182
- * 200:
183
- * description: Dati crittografati con successo
184
- * content:
185
- * application/json:
186
- * schema:
187
- * type: string
188
- * example: 'encrypted_data_here'
189
- * 400:
190
- * description: Dati non validi
191
- * 500:
192
- * description: Errore del server
193
- */
194
- abstract encrypt(req: Request<{}, {}, {
195
- data: string;
196
- }>, res: Response): any;
197
- /**
198
- * @swagger
199
- * /decrypt:
200
- * post:
201
- * summary: Decrittografa i dati forniti
202
- * description: Decrittografa i dati passati nel corpo della richiesta.
203
- * requestBody:
204
- * required: true
205
- * content:
206
- * application/json:
207
- * schema:
208
- * type: object
209
- * properties:
210
- * data:
211
- * type: string
212
- * required:
213
- * - data
214
- * responses:
215
- * 200:
216
- * description: Dati decrittografati con successo
217
- * content:
218
- * application/json:
219
- * schema:
220
- * type: string
221
- * example: 'decrypted_data_here'
222
- * 400:
223
- * description: Dati non validi
224
- * 500:
225
- * description: Errore del server
226
- */
227
- abstract decrypt(req: Request<{}, {}, {
228
- data: string;
229
- }>, res: Response): any;
230
- /**
231
- * @swagger
232
- * /reset-abilitazioni:
233
- * post:
234
- * summary: Resetta le abilitazioni di un utente
235
- * description: Resetta le abilitazioni di un utente dato il codice utente.
236
- * requestBody:
237
- * required: true
238
- * content:
239
- * application/json:
240
- * schema:
241
- * type: object
242
- * properties:
243
- * codiceUtente:
244
- * type: string
245
- * required:
246
- * - codiceUtente
247
- * responses:
248
- * 200:
249
- * description: Abilitazioni resettate con successo
250
- * 400:
251
- * description: Codice utente non valido
252
- * 500:
253
- * description: Errore del server
254
- */
255
- abstract resetAbilitazioni(req: Request<{}, {}, {
256
- codiceUtente: string;
257
- }>, res: Response): any;
258
- /**
259
- * @swagger
260
- * /set-password:
261
- * post:
262
- * summary: Imposta una nuova password per un utente
263
- * description: Imposta una nuova password per un utente dato il codice utente e la nuova password.
264
- * requestBody:
265
- * required: true
266
- * content:
267
- * application/json:
268
- * schema:
269
- * type: object
270
- * properties:
271
- * codiceUtente:
272
- * type: string
273
- * nuovaPassword:
274
- * type: string
275
- * required:
276
- * - codiceUtente
277
- * - nuovaPassword
278
- * responses:
279
- * 200:
280
- * description: Password impostata con successo
281
- * 400:
282
- * description: Dati non validi
283
- * 500:
284
- * description: Errore del server
285
- */
286
- abstract setPassword(req: Request<{}, {}, {
287
- codiceUtente: string;
288
- nuovaPassword: string;
289
- }>, res: Response): any;
290
- /**
291
- * @swagger
292
- * /update-utente:
293
- * post:
294
- * summary: Aggiorna un utente esistente.
295
- * description: Questo endpoint permette di aggiornare i dati di un utente esistente.
296
- * tags:
297
- * - Utenti
298
- * requestBody:
299
- * required: true
300
- * content:
301
- * application/json:
302
- * schema:
303
- * type: object
304
- * properties:
305
- * codiceUtente:
306
- * type: string
307
- * description: Il codice identificativo dell'utente.
308
- * example: "U12345"
309
- * campo1:
310
- * type: string
311
- * description: Primo campo fittizio dell'utente da aggiornare.
312
- * example: "NuovoValore1"
313
- * campo2:
314
- * type: string
315
- * description: Secondo campo fittizio dell'utente da aggiornare.
316
- * example: "NuovoValore2"
317
- * responses:
318
- * 200:
319
- * description: Utente aggiornato con successo.
320
- * content:
321
- * application/json:
322
- * schema:
323
- * type: object
324
- * properties:
325
- * message:
326
- * type: string
327
- * example: "Utente U12345 aggiornato con successo."
328
- * 400:
329
- * description: Errore di validazione o richiesta non valida.
330
- * content:
331
- * application/json:
332
- * schema:
333
- * type: object
334
- * properties:
335
- * error:
336
- * type: string
337
- * example: "Impossibile aggiornare senza codice utente."
338
- * 500:
339
- * description: Errore interno del server.
340
- * content:
341
- * application/json:
342
- * schema:
343
- * type: object
344
- * properties:
345
- * error:
346
- * type: string
347
- * example: "Errore interno del server."
348
- */
349
- abstract updateUtente(req: Request, res: Response): any;
350
- /**
351
- * @swagger
352
- * /set-gdpr:
353
- * post:
354
- * summary: Imposta il consenso GDPR per un utente
355
- * description: Imposta il consenso GDPR per un utente dato il codice utente.
356
- * requestBody:
357
- * required: true
358
- * content:
359
- * application/json:
360
- * schema:
361
- * type: object
362
- * properties:
363
- * codiceUtente:
364
- * type: string
365
- * required:
366
- * - codiceUtente
367
- * responses:
368
- * 200:
369
- * description: GDPR accettato con successo
370
- * 400:
371
- * description: Codice utente non valido
372
- * 500:
373
- * description: Errore del server
374
- */
375
- abstract setGdpr(req: Request<{}, {}, {
376
- codiceUtente: string;
377
- }>, res: Response): any;
378
- abstract verifyEmail(req: Request<{
379
- token: string;
380
- }>, res: Response): any;
381
- abstract requestPasswordReset(req: Request, res: Response): any;
382
- abstract resetPassword(req: Request<{
383
- token: string;
384
- }, {}, {
385
- newPassword: string;
386
- }>, res: Response): any;
387
- }
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AccessiControllerBase = void 0;
4
- /**
5
- * Controller per la gestione degli accessi e delle operazioni correlate.
6
- * Fornisce metodi per login, registrazione, crittografia, decrittografia e gestione delle autorizzazioni utente.
7
- */
8
- class AccessiControllerBase {
9
- constructor() { }
10
- }
11
- exports.AccessiControllerBase = AccessiControllerBase;
@@ -1,5 +0,0 @@
1
- import { Router } from "express";
2
- export interface IAccessiRoutes {
3
- router: Router;
4
- initializeRoutes(): void;
5
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,10 +0,0 @@
1
- import { AccessiController } from "../Controllers/AccessiController";
2
- import { Router } from "express";
3
- import { IAccessiRoutes } from "../IAccessiRoutes";
4
- export declare class AccessiRoutes implements IAccessiRoutes {
5
- private accessiController;
6
- private logger;
7
- router: Router;
8
- constructor(accessiController: AccessiController);
9
- initializeRoutes(): void;
10
- }
@@ -1,55 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- var AccessiRoutes_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.AccessiRoutes = void 0;
17
- const inversify_1 = require("inversify");
18
- const Logger_1 = require("../../Logger");
19
- const AccessiController_1 = require("../Controllers/AccessiController");
20
- const express_1 = require("express");
21
- let AccessiRoutes = AccessiRoutes_1 = class AccessiRoutes {
22
- constructor(accessiController) {
23
- this.accessiController = accessiController;
24
- this.logger = new Logger_1.Logger(AccessiRoutes_1.name);
25
- this.router = (0, express_1.Router)();
26
- this.initializeRoutes();
27
- }
28
- initializeRoutes() {
29
- try {
30
- this.router.post(`/get-user-by-token`, this.accessiController.getUserByToken.bind(this.accessiController));
31
- this.router.post(`/login`, this.accessiController.login.bind(this.accessiController));
32
- this.router.post(`/get-users`, this.accessiController.getUsers.bind(this.accessiController));
33
- this.router.post(`/encrypt`, this.accessiController.encrypt.bind(this.accessiController));
34
- this.router.post(`/decrypt`, this.accessiController.decrypt.bind(this.accessiController));
35
- this.router.post(`/set-password`, this.accessiController.setPassword.bind(this.accessiController));
36
- this.router.post(`/update-utente`, this.accessiController.updateUtente.bind(this.accessiController));
37
- this.router.post(`/delete-utente`, this.accessiController.deleteUser.bind(this.accessiController));
38
- this.router.post(`/register`, this.accessiController.register.bind(this.accessiController));
39
- this.router.post(`/set-gdpr`, this.accessiController.setGdpr.bind(this.accessiController));
40
- this.router.post(`/reset-abilitazioni`, this.accessiController.resetAbilitazioni.bind(this.accessiController));
41
- this.router.get('/verify-email/:token', this.accessiController.verifyEmail.bind(this.accessiController));
42
- this.router.post('/reset-password', this.accessiController.requestPasswordReset.bind(this.accessiController));
43
- this.router.post('/reset-password/:token', this.accessiController.resetPassword.bind(this.accessiController));
44
- }
45
- catch (error) {
46
- this.logger.error("Si è verificato un errore:", error);
47
- throw error;
48
- }
49
- }
50
- };
51
- exports.AccessiRoutes = AccessiRoutes;
52
- exports.AccessiRoutes = AccessiRoutes = AccessiRoutes_1 = __decorate([
53
- __param(0, (0, inversify_1.inject)("AccessiControllerBase")),
54
- __metadata("design:paramtypes", [AccessiController_1.AccessiController])
55
- ], AccessiRoutes);
@@ -1,3 +0,0 @@
1
- import { Container } from "inversify";
2
- declare const container: Container;
3
- export { container };
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.container = void 0;
4
- const inversify_1 = require("inversify");
5
- const UserService_1 = require("./Services/UserService/UserService");
6
- const AuthService_1 = require("./Services/AuthService/AuthService");
7
- const PermissionService_1 = require("./Services/PermissionService/PermissionService");
8
- const EmailService_1 = require("./Services/EmailService/EmailService");
9
- const AccessiController_1 = require("./Controllers/AccessiController");
10
- const AccessiRoutes_1 = require("./Routes/AccessiRoutes");
11
- const AccessiControllerBase_1 = require("./Controllers/AccessiControllerBase");
12
- const container = new inversify_1.Container({ defaultScope: "Singleton" });
13
- exports.container = container;
14
- console.log("UserService:", UserService_1.UserService);
15
- console.log("AuthService:", AuthService_1.AuthService);
16
- console.log("PermissionService:", PermissionService_1.PermissionService);
17
- console.log("EmailService:", EmailService_1.EmailService);
18
- console.log("AccessiController:", AccessiController_1.AccessiController);
19
- console.log("AccessiControllerBase:", AccessiControllerBase_1.AccessiControllerBase);
20
- if (!UserService_1.UserService ||
21
- !AuthService_1.AuthService ||
22
- !PermissionService_1.PermissionService ||
23
- !EmailService_1.EmailService ||
24
- !AccessiController_1.AccessiController ||
25
- !AccessiRoutes_1.AccessiRoutes ||
26
- !AccessiControllerBase_1.AccessiControllerBase) {
27
- throw new Error("ERRORE: Una o più dipendenze non sono state importate correttamente!");
28
- }
29
- const accessiOptions = {
30
- databaseOptions: {},
31
- mockDemoUser: false,
32
- encryptionKey: "",
33
- jwtOptions: { secret: "", expiresIn: "1h" },
34
- emailOptions: {
35
- auth: {
36
- user: "",
37
- pass: ""
38
- },
39
- from: "",
40
- host: "",
41
- port: 0,
42
- secure: false
43
- }
44
- };
45
- console.log("AccessiOptions inizializzato correttamente:", accessiOptions);
46
- if (container.isBound("AccessiOptions")) {
47
- container.rebind("AccessiOptions").toConstantValue(accessiOptions);
48
- }
49
- else {
50
- container.bind("AccessiOptions").toConstantValue(accessiOptions);
51
- }
52
- console.log("Registrazione delle dipendenze...");
53
- console.log("Binding IUserService...");
54
- container.bind("IUserService").to(UserService_1.UserService);
55
- console.log("Binding IAuthService...");
56
- container.bind("IAuthService").to(AuthService_1.AuthService);
57
- console.log("Binding IPermissionService...");
58
- container.bind("IPermissionService").to(PermissionService_1.PermissionService);
59
- console.log("Binding IEmailService...");
60
- container.bind("IEmailService").to(EmailService_1.EmailService);
61
- console.log("Binding AccessiControllerBase...");
62
- container.bind("AccessiControllerBase").to(AccessiController_1.AccessiController);
63
- console.log("Binding AccessiRoutes...");
64
- container.bind("IAccessiRoutes").to(AccessiRoutes_1.AccessiRoutes);
65
- console.log("Tutte le dipendenze sono state registrate correttamente!");