refactor: Refactor record controller (backend) #76
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.
Context
This change is being made to improve the maintainability of the Record Controller in the backend. The existing implementation had a significant amount of duplicate code for handling different screen types and updating overall scores, which made it difficult to maintain and extend in the future. By refactoring, we aim to enhance readability, reduce the likelihood of bugs, and simplify modifications going forward.
Closes #75
What Changed?
Introduced helper functions:
getRecordsByScreen
: Centralizes logic for fetching records based on the screen type.getTopScoresByScreen
: Centralizes logic for retrieving top scores based on the screen type.updateOverallScore
: Centralizes logic for updating overall scores based on the latest records.Replaced repetitive conditional logic with switch statements for improved readability.
Streamlined logic for checking existing records and creating them if they do not exist.
Ensured consistent error handling and response structure across all controller functions.
How To Review
Testing
Risks
Notes