2 Commits

Author SHA1 Message Date
3f0fe56e02 Add protected route middleware and auth store for web app
- Implement Next.js middleware for route protection
- Create Zustand auth store for web (similar to mobile)
- Add comprehensive tests for middleware and auth store
- Protect authenticated routes (/dashboard, /profile)
- Redirect unauthenticated users to /login
- Redirect authenticated users from auth routes to /dashboard
- Handle session expiration with 401 callback
- Set access token cookie for middleware
- All tests passing (105 tests total)
2026-01-31 17:49:21 -08:00
0cc82b24b0 Add deployment_id lookup mechanism
Implement getDeploymentForBeneficiary() method to resolve beneficiary → deployment_id mapping. This extracts the deployment lookup logic into a reusable, testable method.

Changes:
- Add getDeploymentForBeneficiary() in services/api.ts
  - Fetches beneficiary from WellNuo API
  - Returns deployment_id with proper error handling
  - Returns ApiResponse<number> with typed errors
- Refactor attachDeviceToBeneficiary() to use new method
  - Reduces code duplication
  - Improves separation of concerns
- Add comprehensive test suite
  - Tests successful deployment lookup
  - Tests authentication errors
  - Tests missing deployment scenarios
  - Tests network error handling
  - Tests edge cases (string IDs, 0 values, empty strings)

Benefits:
- Deployment lookup now reusable across codebase
- Better error handling with specific error codes
- Easier to test and maintain
- Follows DRY principle

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-31 16:00:11 -08:00