-
Notifications
You must be signed in to change notification settings - Fork 0
[EXTRACT] LocationService - Rip location operations from monolith #52
Copy link
Copy link
Open
Description
🔪 Extraction Target
Extract all location operations from the 19,843-line index.mjs into a focused LocationService class. Straight extraction.
📁 Methods to Extract
// All of these get ripped out and moved to LocationService
getLocations()
getLocation()
createLocation()
updateLocation()
deleteLocation()
// ... and any other location-related methods🎯 Definition of Done
- Create
services/LocationService.jsextending BaseService - Extract ALL location methods from index.mjs
- File size < 500 lines (enforced by linter)
- All existing tests pass WITHOUT modification
- Add JSDoc comments for each method
- No deprecated methods or compatibility layers
- Update all imports/references in index.mjs
- Zero regression - identical functionality
⚡ Implementation
// services/LocationService.js
export class LocationService extends BaseService {
async getLocations() {
// Direct copy from index.mjs - no changes
}
async createLocation(location) {
// Direct copy from index.mjs - no changes
}
// ... rest of location methods
}🚫 NOT in Scope
- Backward compatibility
- Deprecation warnings
- Proxy methods in GrocyClient
- Changing method signatures
- Adding new features
💀 Breaking Changes
Yes. Progress.
Related to
Parent issue: #11
Reactions are currently unavailable