airqo-platform / airqo-platform/AirQo-api

Refactor: Move default ID assignment logic from controllers to utility layer

Abierto
#4,938 0 comentarios 0 reacciones 1 asignado Reclamado por @Baalmart Ver en GitHub
Lenguaje dominante
JavaScript
Estrellas
26
Forks
24
Merge medio
5 h 36 min
PR fusionados (30 d)
81

Descripción

## Problem
In the preference controller, default group/network ID assignment is done directly in the controller methods, creating tight coupling with configuration constants.

**Affected locations:**
- Lines 1048-1050 (getUserDefaultGroupTheme)
- Lines 1088-1090 (updateUserDefaultGroupTheme)
- Lines 1204-1206 (getUserDefaultNetworkTheme)
- Lines 1244-1246 (updateUserDefaultNetworkTheme)

**Current implementation:**
```javascript
// Set default group ID
request.params.group_id = constants.DEFAULT_GROUP;

const result = await preferenceUtil.getUserGroupTheme(request, next);
```

## Proposed Solution
Move the default ID assignment logic into the utility layer to improve modularity and reduce coupling:

1. Create dedicated utility methods for default contexts (e.g., `getUserDefaultGroupTheme`, `getUserDefaultNetworkTheme`)
2. Or enhance existing utility methods to handle default values internally
3. Replace direct assignments in controllers with calls to these utility functions

## Benefits
- Reduces coupling between controllers and configuration constants
- Centralizes default value logic in one place
- Improves maintainability and testability

## References
- PR: https://github.com/airqo-platform/AirQo-api/pull/4937
- Comment: https://github.com/airqo-platform/AirQo-api/pull/4937#discussion_r2212691346

Requested by: @Baalmart

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.