airqo-platform / airqo-platform/AirQo-api

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

Aperta
#4,938 0 commenti 0 reazioni 1 assegnatario Rivendicata da @Baalmart Vedi su GitHub
Lingua principale
JavaScript
Stelle
26
Fork
24
Merge medio
5h 36m
PR unite (30g)
81

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.