From 6d0beccea097e1b4afcd57b3b207ce8e998b0c76 Mon Sep 17 00:00:00 2001 From: jackiettran <41605212+jackiettran@users.noreply.github.com> Date: Sat, 1 Nov 2025 22:33:59 -0400 Subject: [PATCH] refactor mylistings and my rentals --- backend/routes/rentals.js | 8 ++++---- backend/services/emailService.js | 12 ++++++------ .../emails/rentalCompletionCongratsToOwner.html | 2 +- backend/tests/unit/routes/rentals.test.js | 12 ++++++------ frontend/src/App.tsx | 12 ++++++------ frontend/src/components/Navbar.tsx | 4 ++-- frontend/src/pages/EarningsDashboard.tsx | 2 +- frontend/src/pages/EditItem.tsx | 2 +- frontend/src/pages/ItemDetail.tsx | 2 +- frontend/src/pages/{MyListings.tsx => Owning.tsx} | 10 +++++----- frontend/src/pages/Profile.tsx | 6 +++--- frontend/src/pages/RentItem.tsx | 2 +- frontend/src/pages/{MyRentals.tsx => Renting.tsx} | 6 +++--- frontend/src/services/api.ts | 4 ++-- 14 files changed, 42 insertions(+), 42 deletions(-) rename frontend/src/pages/{MyListings.tsx => Owning.tsx} (99%) rename frontend/src/pages/{MyRentals.tsx => Renting.tsx} (99%) diff --git a/backend/routes/rentals.js b/backend/routes/rentals.js index c0b0f6f..21825dc 100644 --- a/backend/routes/rentals.js +++ b/backend/routes/rentals.js @@ -53,7 +53,7 @@ const checkAndUpdateReviewVisibility = async (rental) => { return rental; }; -router.get("/my-rentals", authenticateToken, async (req, res) => { +router.get("/renting", authenticateToken, async (req, res) => { try { const rentals = await Rental.findAll({ where: { renterId: req.user.id }, @@ -72,7 +72,7 @@ router.get("/my-rentals", authenticateToken, async (req, res) => { res.json(rentals); } catch (error) { const reqLogger = logger.withRequestId(req.id); - reqLogger.error("Error in my-rentals route", { + reqLogger.error("Error in renting route", { error: error.message, stack: error.stack, userId: req.user.id, @@ -81,7 +81,7 @@ router.get("/my-rentals", authenticateToken, async (req, res) => { } }); -router.get("/my-listings", authenticateToken, async (req, res) => { +router.get("/owning", authenticateToken, async (req, res) => { try { const rentals = await Rental.findAll({ where: { ownerId: req.user.id }, @@ -100,7 +100,7 @@ router.get("/my-listings", authenticateToken, async (req, res) => { res.json(rentals); } catch (error) { const reqLogger = logger.withRequestId(req.id); - reqLogger.error("Error in my-listings route", { + reqLogger.error("Error in owning route", { error: error.message, stack: error.stack, userId: req.user.id, diff --git a/backend/services/emailService.js b/backend/services/emailService.js index 79dfe0f..043806d 100644 --- a/backend/services/emailService.js +++ b/backend/services/emailService.js @@ -442,7 +442,7 @@ class EmailService {
Rental Period: {{startDate}} to {{endDate}}
{{earningsSection}} {{stripeSection}} - + ` ), @@ -697,7 +697,7 @@ class EmailService { async sendRentalRequestEmail(rental) { const frontendUrl = process.env.FRONTEND_URL || "http://localhost:3000"; - const approveUrl = `${frontendUrl}/my-listings?rentalId=${rental.id}`; + const approveUrl = `${frontendUrl}/owning?rentalId=${rental.id}`; // Fetch owner details const owner = await User.findByPk(rental.ownerId, { @@ -754,7 +754,7 @@ class EmailService { async sendRentalRequestConfirmationEmail(rental) { const frontendUrl = process.env.FRONTEND_URL || "http://localhost:3000"; - const viewRentalsUrl = `${frontendUrl}/my-rentals`; + const viewRentalsUrl = `${frontendUrl}/renting`; // Fetch renter details const renter = await User.findByPk(rental.renterId, { @@ -1539,7 +1539,7 @@ class EmailService { paymentMessage: paymentMessage, earningsSection: earningsSection, stripeSection: stripeSection, - rentalDetailsUrl: `${frontendUrl}/my-listings?rentalId=${rental.id}`, + rentalDetailsUrl: `${frontendUrl}/owning?rentalId=${rental.id}`, }; const htmlContent = this.renderTemplate( @@ -1615,7 +1615,7 @@ class EmailService {- Leave a Review + Leave a Review
`; } else { @@ -1749,7 +1749,7 @@ class EmailService { returnedDate: returnedDate, earningsSection: earningsSection, stripeSection: stripeSection, - myListingsUrl: `${frontendUrl}/my-listings`, + owningUrl: `${frontendUrl}/owning`, }; const ownerHtmlContent = this.renderTemplate( diff --git a/backend/templates/emails/rentalCompletionCongratsToOwner.html b/backend/templates/emails/rentalCompletionCongratsToOwner.html index 99fffbc..b256c65 100644 --- a/backend/templates/emails/rentalCompletionCongratsToOwner.html +++ b/backend/templates/emails/rentalCompletionCongratsToOwner.html @@ -355,7 +355,7 @@Have more items sitting idle? Turn them into income! List camping gear, tools, party supplies, sports equipment, or anything else that others might need.
- View My Listings + View My Listings
Thank you for being an excellent host on RentAll!
diff --git a/backend/tests/unit/routes/rentals.test.js b/backend/tests/unit/routes/rentals.test.js index 2ee5546..23fa0a7 100644 --- a/backend/tests/unit/routes/rentals.test.js +++ b/backend/tests/unit/routes/rentals.test.js @@ -66,7 +66,7 @@ describe('Rentals Routes', () => { jest.clearAllMocks(); }); - describe('GET /my-rentals', () => { + describe('GET /renting', () => { it('should get rentals for authenticated user', async () => { const mockRentals = [ { @@ -86,7 +86,7 @@ describe('Rentals Routes', () => { mockRentalFindAll.mockResolvedValue(mockRentals); const response = await request(app) - .get('/rentals/my-rentals'); + .get('/rentals/renting'); expect(response.status).toBe(200); expect(response.body).toEqual(mockRentals); @@ -108,14 +108,14 @@ describe('Rentals Routes', () => { mockRentalFindAll.mockRejectedValue(new Error('Database error')); const response = await request(app) - .get('/rentals/my-rentals'); + .get('/rentals/renting'); expect(response.status).toBe(500); expect(response.body).toEqual({ error: 'Failed to fetch rentals' }); }); }); - describe('GET /my-listings', () => { + describe('GET /owning', () => { it('should get listings for authenticated user', async () => { const mockListings = [ { @@ -129,7 +129,7 @@ describe('Rentals Routes', () => { mockRentalFindAll.mockResolvedValue(mockListings); const response = await request(app) - .get('/rentals/my-listings'); + .get('/rentals/owning'); expect(response.status).toBe(200); expect(response.body).toEqual(mockListings); @@ -151,7 +151,7 @@ describe('Rentals Routes', () => { mockRentalFindAll.mockRejectedValue(new Error('Database error')); const response = await request(app) - .get('/rentals/my-listings'); + .get('/rentals/owning'); expect(response.status).toBe(500); expect(response.body).toEqual({ error: 'Failed to fetch listings' }); diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 7aacfb0..b04aab6 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -15,8 +15,8 @@ import ItemDetail from './pages/ItemDetail'; import EditItem from './pages/EditItem'; import RentItem from './pages/RentItem'; import CreateItem from './pages/CreateItem'; -import MyRentals from './pages/MyRentals'; -import MyListings from './pages/MyListings'; +import Renting from './pages/Renting'; +import Owning from './pages/Owning'; import Profile from './pages/Profile'; import PublicProfile from './pages/PublicProfile'; import Messages from './pages/Messages'; @@ -117,18 +117,18 @@ const AppContent: React.FC = () => { } />