APIs & services / Reporting datasets (rtld)

VO-wise analytics rows.

Endpointtoday's app
Call
GET /rtld/api/dataset/v1/execute?name=PlusOneCadreAnalyticsVOWise
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

Farmer-id drill-down lists for a cadre's VO-filtered dashboard. FetchAnalyticsDataWorker calls it after the VO-wise totals and nine-principles calls, and stores the result in KEY_ANALYTICS_IE_IDS_DATA (getFarmerIeIdsForVos). 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
namequeryYesPlusOneCadreAnalyticsVOWiseDataset 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.
paramsqueryYesIN_PARAM_VO_CODE=VO-ALIAS-001Dataset input parameters as KEY=value pairs joined with "--". IN_PARAM_VO_CODE = comma-separated VO aliases selected in the dashboard filter.

Request

No body. VO params

Response

Example response body (synthetic data)
[
  {
    "CadreLogin": "9XXXXXXXX1",
    "VOCode": "VO-ALIAS-001",
    "c1DailyFarmersIeIds": "100001",
    "c1MonthlyFarmersIeIds": "100001,100002",
    "c1overallFarmersIeIds": "100001,100002,100005",
    "s2soverallFarmersIeIds": "100003",
    "pmdsoverallFarmersIeIds": "100006",
    "s2swoverallFarmersIeIds": "",
    "rdsoverallFarmersIeIds": "",
    "dkg365overallFarmersIeIds": "100002"
  }
]
FieldTypeRequiredNotes
VOCodestringVO the row belongs to.
{model}{Daily,Monthly,overall}FarmersIeIdsstring (CSV)Farmer ids behind each figure for drill-down.
Count fieldsnumberMisDataDtoItem counts, if returned; parsed but the stored list is used for ids.

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.
5xxDataset query failed on the serverEmpty list stored.
network errorNo connectivity or timeoutEmpty list stored.

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