backend logging
This commit is contained in:
@@ -2,6 +2,7 @@ const express = require("express");
|
||||
const { Op } = require("sequelize");
|
||||
const { Item, User, Rental } = require("../models"); // Import from models/index.js to get models with associations
|
||||
const { authenticateToken } = require("../middleware/auth");
|
||||
const logger = require("../utils/logger");
|
||||
const router = express.Router();
|
||||
|
||||
router.get("/", async (req, res) => {
|
||||
@@ -60,6 +61,14 @@ router.get("/", async (req, res) => {
|
||||
return itemData;
|
||||
});
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Items search completed", {
|
||||
filters: { minPrice, maxPrice, city, zipCode, search },
|
||||
resultsCount: count,
|
||||
page: parseInt(page),
|
||||
limit: parseInt(limit)
|
||||
});
|
||||
|
||||
res.json({
|
||||
items: itemsWithRoundedCoords,
|
||||
totalPages: Math.ceil(count / limit),
|
||||
@@ -67,6 +76,12 @@ router.get("/", async (req, res) => {
|
||||
totalItems: count,
|
||||
});
|
||||
} catch (error) {
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Items search failed", {
|
||||
error: error.message,
|
||||
stack: error.stack,
|
||||
query: req.query
|
||||
});
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
@@ -87,8 +102,20 @@ router.get("/recommendations", authenticateToken, async (req, res) => {
|
||||
order: [["createdAt", "DESC"]],
|
||||
});
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Recommendations fetched", {
|
||||
userId: req.user.id,
|
||||
recommendationsCount: recommendations.length
|
||||
});
|
||||
|
||||
res.json(recommendations);
|
||||
} catch (error) {
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Recommendations fetch failed", {
|
||||
error: error.message,
|
||||
stack: error.stack,
|
||||
userId: req.user.id
|
||||
});
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
@@ -120,12 +147,25 @@ router.get('/:id/reviews', async (req, res) => {
|
||||
? reviews.reduce((sum, review) => sum + review.itemRating, 0) / reviews.length
|
||||
: 0;
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Item reviews fetched", {
|
||||
itemId: req.params.id,
|
||||
reviewsCount: reviews.length,
|
||||
averageRating
|
||||
});
|
||||
|
||||
res.json({
|
||||
reviews,
|
||||
averageRating,
|
||||
totalReviews: reviews.length
|
||||
});
|
||||
} catch (error) {
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Item reviews fetch failed", {
|
||||
error: error.message,
|
||||
stack: error.stack,
|
||||
itemId: req.params.id
|
||||
});
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
@@ -155,8 +195,20 @@ router.get("/:id", async (req, res) => {
|
||||
itemResponse.longitude = Math.round(parseFloat(itemResponse.longitude) * 100) / 100;
|
||||
}
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Item fetched", {
|
||||
itemId: req.params.id,
|
||||
ownerId: item.ownerId
|
||||
});
|
||||
|
||||
res.json(itemResponse);
|
||||
} catch (error) {
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Item fetch failed", {
|
||||
error: error.message,
|
||||
stack: error.stack,
|
||||
itemId: req.params.id
|
||||
});
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
@@ -178,8 +230,22 @@ router.post("/", authenticateToken, async (req, res) => {
|
||||
],
|
||||
});
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Item created", {
|
||||
itemId: item.id,
|
||||
ownerId: req.user.id,
|
||||
itemName: req.body.name
|
||||
});
|
||||
|
||||
res.status(201).json(itemWithOwner);
|
||||
} catch (error) {
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Item creation failed", {
|
||||
error: error.message,
|
||||
stack: error.stack,
|
||||
ownerId: req.user.id,
|
||||
itemData: logger.sanitize(req.body)
|
||||
});
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
@@ -208,8 +274,21 @@ router.put("/:id", authenticateToken, async (req, res) => {
|
||||
],
|
||||
});
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Item updated", {
|
||||
itemId: req.params.id,
|
||||
ownerId: req.user.id
|
||||
});
|
||||
|
||||
res.json(updatedItem);
|
||||
} catch (error) {
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Item update failed", {
|
||||
error: error.message,
|
||||
stack: error.stack,
|
||||
itemId: req.params.id,
|
||||
ownerId: req.user.id
|
||||
});
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
@@ -227,8 +306,22 @@ router.delete("/:id", authenticateToken, async (req, res) => {
|
||||
}
|
||||
|
||||
await item.destroy();
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Item deleted", {
|
||||
itemId: req.params.id,
|
||||
ownerId: req.user.id
|
||||
});
|
||||
|
||||
res.status(204).send();
|
||||
} catch (error) {
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Item deletion failed", {
|
||||
error: error.message,
|
||||
stack: error.stack,
|
||||
itemId: req.params.id,
|
||||
ownerId: req.user.id
|
||||
});
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user