Skip to content
This repository was archived by the owner on Apr 8, 2026. It is now read-only.

Commit d7c87fa

Browse files
committed
Complete refactor
1 parent 73c63bc commit d7c87fa

87 files changed

Lines changed: 3450 additions & 4934 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

dist/controllers/AuthenticatorController.d.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ export declare class Authenticator {
77
private logService;
88
constructor(userService: IUserService, logService: ILogService);
99
private logAction;
10-
generateKey(req: AuthenticatedRequest, res: Response): Promise<Response<any, Record<string, any>> | undefined>;
11-
registerKey(req: AuthenticatedRequest, res: Response): Promise<Response<any, Record<string, any>> | undefined>;
10+
handleAuthenticatorActions(req: AuthenticatedRequest, res: Response): Promise<Response<any, Record<string, any>> | undefined>;
1211
verifyKey(req: Request, res: Response): Promise<Response<any, Record<string, any>> | undefined>;
13-
deleteKey(req: AuthenticatedRequest, res: Response): Promise<Response<any, Record<string, any>> | undefined>;
1412
}

dist/controllers/AuthenticatorController.js

Lines changed: 54 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,10 @@ function handleError(res, error, message, status = 500) {
4949
res.status(status).send({ message, error: msg });
5050
}
5151
let Authenticator = class Authenticator {
52-
constructor(userService, logService // décommenté pour logger
53-
) {
52+
constructor(userService, logService) {
5453
this.userService = userService;
5554
this.logService = logService;
5655
}
57-
// Helper pour les logs (utilise logService maintenant)
5856
async logAction(req, action, statusCode, metadata) {
5957
try {
6058
const requestBody = { ...req.body };
@@ -75,52 +73,63 @@ let Authenticator = class Authenticator {
7573
console.error("Error creating log:", error);
7674
}
7775
}
78-
async generateKey(req, res) {
76+
async handleAuthenticatorActions(req, res) {
77+
const action = req.params.action;
7978
const user = req.user;
80-
if (!user || !user.email) {
81-
await this.logAction(req, "generateKey", 400);
82-
return res.status(400).send({ message: "User not authenticated or email missing" });
83-
}
8479
try {
85-
const key = time2fa_1.Totp.generateKey({ issuer: "Croissant API", user: user.email });
86-
qrcode.toDataURL(key.url, async (err, url) => {
87-
if (err) {
88-
await this.logAction(req, "generateKey", 500, { error: err });
89-
return res.status(500).send({ message: "Error generating QR code" });
80+
switch (action) {
81+
case "generateKey": {
82+
if (!user || !user.email) {
83+
await this.logAction(req, "generateKey", 400);
84+
return res.status(400).send({ message: "User not authenticated or email missing" });
85+
}
86+
const key = time2fa_1.Totp.generateKey({ issuer: "Croissant API", user: user.email });
87+
qrcode.toDataURL(key.url, async (err, url) => {
88+
if (err) {
89+
await this.logAction(req, "generateKey", 500, { error: err });
90+
return res.status(500).send({ message: "Error generating QR code" });
91+
}
92+
await this.logAction(req, "generateKey", 200);
93+
res.status(200).send({ key, qrCode: url });
94+
});
95+
break;
9096
}
91-
await this.logAction(req, "generateKey", 200);
92-
res.status(200).send({ key, qrCode: url });
93-
});
94-
}
95-
catch (error) {
96-
await this.logAction(req, "generateKey", 500, { error });
97-
handleError(res, error, "Error generating key");
98-
}
99-
}
100-
async registerKey(req, res) {
101-
const user = req.user;
102-
const { key, passcode } = req.body;
103-
if (!user || !user.email || !key) {
104-
await this.logAction(req, "registerKey", 400);
105-
return res.status(400).send({ message: "User not authenticated, email missing, or key missing" });
106-
}
107-
if (!passcode) {
108-
await this.logAction(req, "registerKey", 400);
109-
return res.status(400).send({ message: "Passcode is required" });
110-
}
111-
try {
112-
const isValid = time2fa_1.Totp.validate({ secret: key.secret, passcode });
113-
if (!isValid) {
114-
await this.logAction(req, "registerKey", 400);
115-
return res.status(400).send({ message: "Invalid passcode" });
97+
case "registerKey": {
98+
const { key: regKey, passcode } = req.body;
99+
if (!user || !user.email || !regKey) {
100+
await this.logAction(req, "registerKey", 400);
101+
return res.status(400).send({ message: "User not authenticated, email missing, or key missing" });
102+
}
103+
if (!passcode) {
104+
await this.logAction(req, "registerKey", 400);
105+
return res.status(400).send({ message: "Passcode is required" });
106+
}
107+
if (!time2fa_1.Totp.validate({ secret: regKey.secret, passcode })) {
108+
await this.logAction(req, "registerKey", 400);
109+
return res.status(400).send({ message: "Invalid passcode" });
110+
}
111+
await this.userService.setAuthenticatorSecret(user.user_id, regKey.secret);
112+
await this.logAction(req, "registerKey", 200);
113+
res.status(200).send({ message: "Key registered successfully" });
114+
break;
115+
}
116+
case "delete": {
117+
if (!user || !user.email) {
118+
await this.logAction(req, "deleteKey", 400);
119+
return res.status(400).send({ message: "User not authenticated or email missing" });
120+
}
121+
await this.userService.setAuthenticatorSecret(user.user_id, null);
122+
await this.logAction(req, "deleteKey", 200);
123+
res.status(200).send({ message: "Google Authenticator deleted successfully" });
124+
break;
125+
}
126+
default:
127+
res.status(404).send({ message: "Unknown action" });
116128
}
117-
await this.userService.setAuthenticatorSecret(user.user_id, key.secret);
118-
await this.logAction(req, "registerKey", 200);
119-
res.status(200).send({ message: "Key registered successfully" });
120129
}
121130
catch (error) {
122-
await this.logAction(req, "registerKey", 500, { error });
123-
handleError(res, error, "Error registering key");
131+
await this.logAction(req, action, 500, { error });
132+
handleError(res, error, `Error in ${action}`);
124133
}
125134
}
126135
async verifyKey(req, res) {
@@ -143,7 +152,6 @@ let Authenticator = class Authenticator {
143152
const isValid = time2fa_1.Totp.validate({ secret: key, passcode: code });
144153
if (isValid) {
145154
await this.logAction(req, "verifyKey", 200);
146-
// Génère la clé API puis le JWT
147155
const apiKey = (0, GenKey_1.genKey)(user.user_id);
148156
const jwtToken = (0, Jwt_1.generateUserJwt)(user, apiKey);
149157
return res.status(200).send({ message: "Key verified successfully", token: jwtToken });
@@ -158,48 +166,20 @@ let Authenticator = class Authenticator {
158166
handleError(res, error, "Error verifying key");
159167
}
160168
}
161-
async deleteKey(req, res) {
162-
const user = req.user;
163-
if (!user || !user.email) {
164-
await this.logAction(req, "deleteKey", 400);
165-
return res.status(400).send({ message: "User not authenticated or email missing" });
166-
}
167-
try {
168-
await this.userService.setAuthenticatorSecret(user.user_id, null);
169-
await this.logAction(req, "deleteKey", 200);
170-
res.status(200).send({ message: "Google Authenticator deleted successfully" });
171-
}
172-
catch (error) {
173-
await this.logAction(req, "deleteKey", 500, { error });
174-
handleError(res, error, "Error deleting authenticator");
175-
}
176-
}
177169
};
178170
exports.Authenticator = Authenticator;
179171
__decorate([
180-
(0, inversify_express_utils_1.httpPost)("/generateKey", LoggedCheck_1.LoggedCheck.middleware),
172+
(0, inversify_express_utils_1.httpPost)("/:action", LoggedCheck_1.LoggedCheck.middleware),
181173
__metadata("design:type", Function),
182174
__metadata("design:paramtypes", [Object, Object]),
183175
__metadata("design:returntype", Promise)
184-
], Authenticator.prototype, "generateKey", null);
185-
__decorate([
186-
(0, inversify_express_utils_1.httpPost)("/registerKey", LoggedCheck_1.LoggedCheck.middleware),
187-
__metadata("design:type", Function),
188-
__metadata("design:paramtypes", [Object, Object]),
189-
__metadata("design:returntype", Promise)
190-
], Authenticator.prototype, "registerKey", null);
176+
], Authenticator.prototype, "handleAuthenticatorActions", null);
191177
__decorate([
192178
(0, inversify_express_utils_1.httpPost)("/verifyKey"),
193179
__metadata("design:type", Function),
194180
__metadata("design:paramtypes", [Object, Object]),
195181
__metadata("design:returntype", Promise)
196182
], Authenticator.prototype, "verifyKey", null);
197-
__decorate([
198-
(0, inversify_express_utils_1.httpPost)("/delete", LoggedCheck_1.LoggedCheck.middleware),
199-
__metadata("design:type", Function),
200-
__metadata("design:paramtypes", [Object, Object]),
201-
__metadata("design:returntype", Promise)
202-
], Authenticator.prototype, "deleteKey", null);
203183
exports.Authenticator = Authenticator = __decorate([
204184
(0, inversify_express_utils_1.controller)("/authenticator"),
205185
__param(0, (0, inversify_1.inject)("UserService")),

dist/controllers/BuyOrderController.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,11 @@ function handleError(res, error, message, status = 500) {
2222
res.status(status).send({ message, error: msg });
2323
}
2424
let BuyOrderController = class BuyOrderController {
25-
constructor(buyOrderService, itemService, logService // Ajouté pour logger
26-
) {
25+
constructor(buyOrderService, itemService, logService) {
2726
this.buyOrderService = buyOrderService;
2827
this.itemService = itemService;
2928
this.logService = logService;
3029
}
31-
// Helper pour les logs (utilise logService maintenant)
3230
async logAction(req, action, statusCode, metadata) {
3331
try {
3432
const requestBody = { ...req.body };
@@ -56,7 +54,6 @@ let BuyOrderController = class BuyOrderController {
5654
await this.logAction(req, "createBuyOrder", 400);
5755
return res.status(400).send({ message: "itemId and price are required" });
5856
}
59-
// S'assurer que l'item existe
6057
const itemExists = await this.itemService.getItem(itemId);
6158
if (!itemExists) {
6259
await this.logAction(req, "createBuyOrder", 404);
@@ -92,7 +89,7 @@ let BuyOrderController = class BuyOrderController {
9289
return res.status(403).send({ message: "Forbidden" });
9390
}
9491
try {
95-
const orders = await this.buyOrderService.getBuyOrdersByUser(userId);
92+
const orders = await this.buyOrderService.getBuyOrders({ userId });
9693
await this.logAction(req, "getBuyOrdersByUser", 200);
9794
res.send(orders);
9895
}
@@ -104,7 +101,7 @@ let BuyOrderController = class BuyOrderController {
104101
async getActiveBuyOrdersForItem(req, res) {
105102
const itemId = req.params.itemId;
106103
try {
107-
const orders = await this.buyOrderService.getActiveBuyOrdersForItem(itemId);
104+
const orders = await this.buyOrderService.getBuyOrders({ itemId, status: "active" }, "price DESC, created_at ASC");
108105
await this.logAction(req, "getActiveBuyOrdersForItem", 200);
109106
res.send(orders);
110107
}

0 commit comments

Comments
 (0)