APIs & services / Reporting datasets (rtld)

Farmer ids per analytics category (drill-down).

Endpointtoday's app
Call
GET /rtld/api/dataset/v1/execute?name=PlusOneAnalyticsIEIDCategoryList2
Service
Reporting datasets (rtld)
Features
Analytics dashboard
When
Periodic 12 h and on demand
Auth
X-SESSIONID set by CoreAPI (dooNowOrThrow)
In the App Service

Use case

FetchAnalyticsDataWorker calls it right after a successful PlusOneCadreAnalytics (cadre, no VO filter). It returns comma-separated farmer id lists per model and period, stored in SharedPreferences KEY_ANALYTICS_IE_IDS_DATA. Tapping a dashboard figure uses them to open the matching farmers. A failure stores an empty list, so drill-downs open nothing.

Headers

HeaderValueNotes
X-SESSIONID<session token>Passed explicitly as @Header from AndroidSessionManager.sessionId. AuthInterceptor still retries once with a fresh token on 401 or 400.

Parameters

ParamInRequiredExampleNotes
namequeryYesPlusOneAnalyticsIEIDCategoryList2Dataset name. The rtld executor (/rtld/api/dataset/v1/execute) picks the dataset by this query param.
versionqueryYes1Dataset version. Always 1.
formatqueryYesjsonResponse format. Always json, so the body is a JSON array of row objects.
paramsqueryYesCADRE_LOGIN=9XXXXXXXX1Dataset input parameters as KEY=value pairs joined with "--". CADRE_LOGIN = user login before "@@".

Request

No body. cadre params

Response

Example response body (synthetic data)
[
  {
    "CadreLogin": "9XXXXXXXX1",
    "c1DailyFarmersIeIds": "100001,100002",
    "c1MonthlyFarmersIeIds": "100001,100002,100005",
    "c1overallFarmersIeIds": "100001,100002,100005,100009",
    "s2sDailyFarmersIeIds": "100003",
    "s2sMonthlyFarmersIeIds": "100003",
    "s2soverallFarmersIeIds": "100003,100004",
    "pmdsDailyFarmersIeIds": "",
    "pmdsMonthlyFarmersIeIds": "100006",
    "pmdsoverallFarmersIeIds": "100006",
    "s2swDailyFarmersIeIds": "",
    "s2swMonthlyFarmersIeIds": "",
    "s2swoverallFarmersIeIds": "100007",
    "rdsDailyFarmersIeIds": "",
    "rdsMonthlyFarmersIeIds": "",
    "rdsoverallFarmersIeIds": "",
    "dkg365DailyFarmersIeIds": "100002",
    "dkg365MonthlyFarmersIeIds": "100002",
    "dkg365overallFarmersIeIds": "100002,100008"
  }
]
FieldTypeRequiredNotes
{c1,s2s,pmds,s2sw,rds,dkg365}{Daily,Monthly,overall}FarmersIeIdsstring (CSV)Farmer IE ids behind each dashboard figure; used to open the drill-down list.
Other MisDataDtoItem fieldsnumberSame DTO as PlusOneCadreAnalytics; any count fields returned are parsed but not used here.

Errors

StatusWhenWhat the app does
401 / 400Session token expired or rejectedAuthInterceptor refreshes the token and retries once; if the retry also fails, Empty list stored; drill-downs show no farmers.
5xxDataset query failed on the serverEmpty list stored; drill-downs show no farmers.
network errorNo connectivity or timeoutEmpty list stored; drill-downs show no farmers.

Source

  • app/src/main/java/org/platformcommons/urvi/datasource/network/retrofit/APIInterface.kt
  • app/src/main/java/org/platformcommons/urvi/datasource/service/FetchAnalyticsDataWorker.kt
  • app/src/main/java/org/platformcommons/urvi/datasource/network/responsedto/MisDataDtoItem.kt