Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📋 Description
This pull request addresses the need for better documentation, code structure, and error handling in the Campground controller. The goal is to enhance readability, maintainability, and overall code quality, making it easier for future developers to work with this module.
🔨 Changes Made
Improved Documentation:
Enhanced JSDoc comments for all exported functions, providing details on parameters, return types, and potential exceptions.
Added a module description at the top of the file explaining the purpose and functionality of the Campground controller.
Refactored Code Structure:
Extracted the average rating calculation into a utility function located in a new utils.js file for better code reusability and adherence to the DRY principle.
Organized related functionalities into separate modules to improve separation of concerns, including a new module for handling geocoding and image processing.
Consistent Error Handling:
Standardized error handling across all methods using ExpressError to provide clearer feedback to users.
Implemented checks for required parameters in createCampground and updateCampground methods to handle potential issues gracefully.
Improved Variable Naming:
Renamed ambiguous variable q in the searchCampgrounds method to query for better clarity and understanding.
Performance Optimizations:
Used .select() in database queries to limit the fields returned, thereby reducing data transfer when unnecessary.
✅ Checklist
Before submitting the PR, please make sure you have completed the following:
🏷️ Types of Changes
What type of changes does your code introduce? (Check all that apply)
🤝 Related Issues
📸 Screenshots (if applicable)
Reminder:
Please ensure your pull request is made to the
test
branch, notmain
.Thank you for contributing to VigneshDevHub! We look forward to reviewing your PR and getting it merged!