Skip to content

Refactor: Create reusable normalizeUser utility to reduce code duplication #422

Description

@zaibamachhaliya

Problem

The user normalization logic is duplicated in 4 places inside authContext.tsx (login, verifyEmail, googleLogin, verifyToken). Each function repeats the same ~15 lines of code to map raw user data into the User type.

This duplication violates the DRY principle, makes the code harder to maintain, and increases the risk of inconsistencies (e.g., rating default is 1200 in one place and 1500 in another).

Solution

Create a reusable normalizeUser utility function that accepts user data and optional overrides. This will reduce each occurrence to a single line and centralize future updates.

Impact

  • Removes ~60 lines of duplicate code
  • Improves maintainability
  • Reduces bugs from copy-paste errors

Implementation Outline

  1. Add frontend/src/utils/normalizeUser.ts with the utility function
  2. Update authContext.tsx to use it in the 4 mentioned functions
  3. Test all authentication flows (login, signup, Google login, email verification)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions