AOSSIE-Org / AOSSIE-Org/DebateAI

Refactor: Create reusable normalizeUser utility to reduce code duplication

Aperta
#422 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
TypeScript
Stelle
84
Fork
198
Merge medio
2g 19h
PR unite (30g)
30

Descrizione

## 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)

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Start by reading frontend/src/authContext.tsx, focusing on the normalization logic in login, verifyEmail, googleLogin, and verifyToken. Compare the four mappings and the differing rating defaults before reviewing the new utility location at frontend/src/utils/normalizeUser.ts. Done means all four flows use the shared utility and login, signup, Google login, and email verification still work.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
typescript
Ambito
authentication, frontend
Tipo di issue
Refactoring
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Attiva
Chiarezza
Specificata chiaramente
Idoneità per principianti
76/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.