emilsoftware-utilities 1.3.26 → 1.3.28

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.
@@ -18,6 +18,41 @@ export declare class AccessiController {
18
18
  */
19
19
  constructor(accessiModel: AccessiModel);
20
20
  /**
21
+ * @swagger
22
+ * /get-user-by-token:
23
+ * post:
24
+ * summary: Recupera le informazioni utente dal token JWT
25
+ * description: Estrae e restituisce le informazioni utente decodificate da un token JWT valido.
26
+ * requestBody:
27
+ * required: true
28
+ * content:
29
+ * application/json:
30
+ * schema:
31
+ * type: object
32
+ * properties:
33
+ * token:
34
+ * type: string
35
+ * required:
36
+ * - token
37
+ * responses:
38
+ * 200:
39
+ * description: Informazioni utente recuperate con successo
40
+ * content:
41
+ * application/json:
42
+ * schema:
43
+ * type: object
44
+ * properties:
45
+ * userData:
46
+ * type: object
47
+ * 400:
48
+ * description: Token non valido o assente
49
+ * 500:
50
+ * description: Errore del server
51
+ */
52
+ getUserByToken(req: Request<{}, {}, {
53
+ token: string;
54
+ }>, res: Response): Promise<Response<any, Record<string, any>>>;
55
+ /**
21
56
  * @swagger
22
57
  * /login:
23
58
  * post:
@@ -104,6 +104,61 @@ var AccessiController = function () {
104
104
  this.logger = new Logger_1.Logger(AccessiController.name);
105
105
  }
106
106
  /**
107
+ * @swagger
108
+ * /get-user-by-token:
109
+ * post:
110
+ * summary: Recupera le informazioni utente dal token JWT
111
+ * description: Estrae e restituisce le informazioni utente decodificate da un token JWT valido.
112
+ * requestBody:
113
+ * required: true
114
+ * content:
115
+ * application/json:
116
+ * schema:
117
+ * type: object
118
+ * properties:
119
+ * token:
120
+ * type: string
121
+ * required:
122
+ * - token
123
+ * responses:
124
+ * 200:
125
+ * description: Informazioni utente recuperate con successo
126
+ * content:
127
+ * application/json:
128
+ * schema:
129
+ * type: object
130
+ * properties:
131
+ * userData:
132
+ * type: object
133
+ * 400:
134
+ * description: Token non valido o assente
135
+ * 500:
136
+ * description: Errore del server
137
+ */
138
+ AccessiController_1.prototype.getUserByToken = function (req, res) {
139
+ return __awaiter(this, void 0, void 0, function () {
140
+ var token, jwtOptions, decoded;
141
+ return __generator(this, function (_a) {
142
+ try {
143
+ token = req.body.token;
144
+ if (!token) {
145
+ return [2 /*return*/, Utilities_1.RestUtilities.sendErrorMessage(res, "Token non fornito", AccessiController.name)];
146
+ }
147
+ jwtOptions = this.accessiModel.getOptions().jwtOptions;
148
+ decoded = jsonwebtoken_1.default.verify(token, jwtOptions.secret);
149
+ if (!decoded) {
150
+ return [2 /*return*/, Utilities_1.RestUtilities.sendErrorMessage(res, "Token non valido", AccessiController.name)];
151
+ }
152
+ return [2 /*return*/, Utilities_1.RestUtilities.sendBaseResponse(res, { userData: decoded })];
153
+ }
154
+ catch (error) {
155
+ return [2 /*return*/, Utilities_1.RestUtilities.sendErrorMessage(res, error, AccessiController.name)];
156
+ }
157
+ return [2 /*return*/];
158
+ });
159
+ });
160
+ };
161
+ /**
107
162
  * @swagger
108
163
  * /login:
109
164
  * post:
@@ -138,7 +193,7 @@ var AccessiController = function () {
138
193
  */
139
194
  AccessiController_1.prototype.login = function (req, res) {
140
195
  return __awaiter(this, void 0, void 0, function () {
141
- var request, userData, jwtOptions, token, error_1;
196
+ var request, userData, jwtOptions, error_1;
142
197
  return __generator(this, function (_a) {
143
198
  switch (_a.label) {
144
199
  case 0:
@@ -150,8 +205,12 @@ var AccessiController = function () {
150
205
  if (!userData)
151
206
  return [2 /*return*/, Utilities_1.RestUtilities.sendErrorMessage(res, "Credenziali errate", AccessiController.name)];
152
207
  jwtOptions = this.accessiModel.getOptions().jwtOptions;
153
- token = jsonwebtoken_1.default.sign({ userData: userData }, jwtOptions.secret, { expiresIn: jwtOptions.expiresIn });
154
- return [2 /*return*/, Utilities_1.RestUtilities.sendBaseResponse(res, token)];
208
+ userData.token = {
209
+ expiresIn: jwtOptions.expiresIn,
210
+ value: jsonwebtoken_1.default.sign({ userData: userData }, jwtOptions.secret, { expiresIn: jwtOptions.expiresIn }),
211
+ type: "Bearer"
212
+ };
213
+ return [2 /*return*/, Utilities_1.RestUtilities.sendBaseResponse(res, userData)];
155
214
  case 2:
156
215
  error_1 = _a.sent();
157
216
  return [2 /*return*/, Utilities_1.RestUtilities.sendErrorMessage(res, error_1, AccessiController.name)];
@@ -56,6 +56,7 @@ var AccessiRoutes = function () {
56
56
  }
57
57
  AccessiRoutes_1.prototype.initializeRoutes = function () {
58
58
  try {
59
+ this.router.post("/get-user-by-token", this.accessiController.getUserByToken);
59
60
  this.router.post("/login", this.accessiController.login);
60
61
  this.router.post("/encrypt", this.accessiController.encrypt);
61
62
  this.router.post("/decrypt", this.accessiController.decrypt);
@@ -0,0 +1,4 @@
1
+ export { AccessiModule } from "./AccessiModule";
2
+ export { LoginRequest } from "./models/DTO/LoginRequest";
3
+ export { LoginResponse } from "./models/DTO/LoginResponse";
4
+ export { RegisterRequest } from "./models/DTO/RegisterRequest";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AccessiModule = void 0;
4
+ var AccessiModule_1 = require("./AccessiModule");
5
+ Object.defineProperty(exports, "AccessiModule", { enumerable: true, get: function () { return AccessiModule_1.AccessiModule; } });
@@ -1,6 +1,11 @@
1
1
  import { MenuAbilitazioniResult } from "../QueryResults/MenuAbilitazioniResult";
2
2
  import { UserQueryResult } from "../QueryResults/UserQueryResult";
3
3
  export interface LoginResponse {
4
+ token?: {
5
+ expiresIn: string;
6
+ value: string;
7
+ type: string;
8
+ };
4
9
  user: UserQueryResult;
5
10
  abilitazioni: MenuAbilitazioniResult[];
6
11
  }
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { DatabaseUpdater } from "./DatabaseUpdater";
2
2
  import { ExecutionTimeLogger } from "./ExecutionTimeLogger";
3
3
  import { LogLevels, Logger } from "./Logger";
4
- import { AccessiModule } from "./accessi-module/AccessiModule";
5
4
  import { Orm } from "./Orm";
6
5
  import { DateUtilities, RestUtilities, DatabaseUtilities, StatusCode } from "./Utilities";
7
6
  import { autobind } from "./autobind";
7
+ export { AccessiModule, LoginRequest, LoginResponse, RegisterRequest } from "./accessi-module";
8
8
  export * from "es-node-firebird";
9
- export { autobind, ExecutionTimeLogger, Logger, LogLevels, Orm, DateUtilities, RestUtilities, DatabaseUtilities, DatabaseUpdater, StatusCode, AccessiModule };
9
+ export { autobind, ExecutionTimeLogger, Logger, LogLevels, Orm, DateUtilities, RestUtilities, DatabaseUtilities, DatabaseUpdater, StatusCode };
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.AccessiModule = exports.StatusCode = exports.DatabaseUpdater = exports.DatabaseUtilities = exports.RestUtilities = exports.DateUtilities = exports.Orm = exports.LogLevels = exports.Logger = exports.ExecutionTimeLogger = exports.autobind = void 0;
17
+ exports.StatusCode = exports.DatabaseUpdater = exports.DatabaseUtilities = exports.RestUtilities = exports.DateUtilities = exports.Orm = exports.LogLevels = exports.Logger = exports.ExecutionTimeLogger = exports.autobind = exports.AccessiModule = void 0;
18
18
  var DatabaseUpdater_1 = require("./DatabaseUpdater");
19
19
  Object.defineProperty(exports, "DatabaseUpdater", { enumerable: true, get: function () { return DatabaseUpdater_1.DatabaseUpdater; } });
20
20
  var ExecutionTimeLogger_1 = require("./ExecutionTimeLogger");
@@ -22,8 +22,6 @@ Object.defineProperty(exports, "ExecutionTimeLogger", { enumerable: true, get: f
22
22
  var Logger_1 = require("./Logger");
23
23
  Object.defineProperty(exports, "LogLevels", { enumerable: true, get: function () { return Logger_1.LogLevels; } });
24
24
  Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return Logger_1.Logger; } });
25
- var AccessiModule_1 = require("./accessi-module/AccessiModule");
26
- Object.defineProperty(exports, "AccessiModule", { enumerable: true, get: function () { return AccessiModule_1.AccessiModule; } });
27
25
  var Orm_1 = require("./Orm");
28
26
  Object.defineProperty(exports, "Orm", { enumerable: true, get: function () { return Orm_1.Orm; } });
29
27
  var Utilities_1 = require("./Utilities");
@@ -33,4 +31,6 @@ Object.defineProperty(exports, "DatabaseUtilities", { enumerable: true, get: fun
33
31
  Object.defineProperty(exports, "StatusCode", { enumerable: true, get: function () { return Utilities_1.StatusCode; } });
34
32
  var autobind_1 = require("./autobind");
35
33
  Object.defineProperty(exports, "autobind", { enumerable: true, get: function () { return autobind_1.autobind; } });
34
+ var accessi_module_1 = require("./accessi-module");
35
+ Object.defineProperty(exports, "AccessiModule", { enumerable: true, get: function () { return accessi_module_1.AccessiModule; } });
36
36
  __exportStar(require("es-node-firebird"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "emilsoftware-utilities",
3
- "version": "1.3.26",
3
+ "version": "1.3.28",
4
4
  "description": "Utilities for EmilSoftware",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",