Main cadre dashboard numbers. FetchAnalyticsDataWorker calls it for a cadre login with no VO selected (enqueued from the dashboard; endpoints.json lists a 12 h periodic run as well). IeRepositoryImpl.getFarmerDataForCadreId also calls it on demand. The whole list is stored as JSON in SharedPreferences KEY_ANALYTICS_DATA with KEY_ANALYTICS_DATA_LAST_DATE / _MILLIS; DashboardFragment and OverallMisFragment read it from there (no Room table). A failure caches an empty list, so the dashboard shows zeros.
Headers
Header
Value
Notes
X-SESSIONID
<session token>
Passed explicitly as @Header from AndroidSessionManager.sessionId. AuthInterceptor still retries once with a fresh token on 401 or 400.
Parameters
Param
In
Required
Example
Notes
name
query
Yes
PlusOneCadreAnalytics
Dataset name. The rtld executor (/rtld/api/dataset/v1/execute) picks the dataset by this query param.
version
query
Yes
1
Dataset version. Always 1.
format
query
Yes
json
Response format. Always json, so the body is a JSON array of row objects.
params
query
Yes
CADRE_LOGIN=9XXXXXXXX1
Dataset input parameters as KEY=value pairs joined with "--". CADRE_LOGIN = user login before "@@".
AuthInterceptor refreshes the token and retries once; if the retry also fails, Worker caches an empty list (dashboard zeros); repository path posts Resource.error.
5xx
Dataset query failed on the server
Worker caches an empty list (dashboard zeros); repository path posts Resource.error.
network error
No connectivity or timeout
Worker caches an empty list (dashboard zeros); repository path posts Resource.error.