2.3 KiB
2.3 KiB
Account Endpoints
Purpose
Document account management endpoints for settings, team management, and usage analytics.
Code Locations (exact paths)
- Routing:
backend/igny8_core/api/urls.py - Views:
backend/igny8_core/api/account_views.py - Settings/tenancy middleware:
backend/igny8_core/auth/middleware.py
High-Level Responsibilities
- Provide account settings retrieval/update, team member management, and usage analytics summaries for the authenticated account.
Detailed Behavior
- Base path:
/api/v1/account/ - Settings:
GET /api/v1/account/settings/→ returns account settings (ViewSetretrieve).PATCH /api/v1/account/settings/→ partial update of account settings.
- Team:
GET /api/v1/account/team/→ list team members.POST /api/v1/account/team/→ create/add a team member.DELETE /api/v1/account/team/<id>/→ remove a team member.
- Usage analytics:
GET /api/v1/account/usage/analytics/→ returns usage analytics overview (implementation inUsageAnalyticsViewSet.overview).
- Permissions/tenancy: views expect authenticated users; account context from middleware; data scoped to
request.account.
Data Structures / Models Involved (no code)
- Account, User, and related analytics data as computed in account views.
Execution Flow
- Requests hit
account_viewsViewSets; account context derived from session/JWT via middleware; view methods return unified responses.
Cross-Module Interactions
- Usage analytics may summarize module usage (planner/writer/etc.) depending on
UsageAnalyticsViewSetimplementation.
State Transitions
- Account settings updates; team membership changes.
Error Handling
- Standard unified responses for validation/auth errors; 404 when deleting non-existent team members.
Tenancy Rules
- All endpoints scoped to authenticated user’s account; no cross-tenant access.
Billing Rules
- None directly; account limits and credits are exposed via billing endpoints.
Background Tasks / Schedulers
- None.
Key Design Considerations
- Non-router endpoints used for simplicity; still leverage DRF ViewSet actions.
How Developers Should Work With This Module
- Keep settings/team/usage endpoints under
/api/v1/account/; ensure account context is required for all operations.