#TenantController
# Overview
# Description
Path /v2/statistics
Provides statistic information about different parts in roomle
To retrieve tenant statistics (subpath tenants/:id/
) the user needs TENANT_STATISTICS rights within this tenant.
# API Reference
# GET tenants/:id/useractions/
Generates: application/json , text/csv
returns the monthly-aggregated useractions within this tenant. possible filters:
- module
- action (only allowed with module filter is also present)
sample results:
{
"userActions":[
{
"date":"2014-12-31T23:00:00.000Z",
"module":4,
"action":1,
"tenant":2,
"count":2,
"aggregationLevel":2}
,...
]
}
"module","action","tenant","count","month","year",
4,1,2,2,1,2015
4,1,2,1,4,2015
4,1,2,46,5,2015
please note that the date is the date of the first userAction that appeared within the aggregation period (in this case months)
# GET tenants/:id/userActionsAggregated
Generates: application/json
Returns the aggregated UserActions in the list for the specified tenant, module and actions in the time frame (from-to) If the time frame is incomplete/absent, the current month is returned If aggregations[] are posted, the results are additionaly aggregated by the posted parameters as well
path-param:
- id (Long): the tenantId query-param:
- module (Integer): id of the requested Module
- actions[] (List of Integer): List of integers of the Actions
- from (String): has to be a date string with timezone. This string has to match following example
2016-06-01T07:54:07.000Z
. - to (String): has to be a date string with timezone. This string has to match following example
2016-06-01T07:54:07.000Z
. - aggregations[] (List of String) : List of parameters by which the UserActions are additionaly aggregated - More info
# aggregations[]
The list can contain only specific strings, which equal columns in the DB. These are:
- country
- device
- actionLabel - it is used by the configurator for storing the configuratorId
- actionId - it is used by the configurator to store the item/configuration ID Any other strings will be rejected with a 400 error
sample results:
{
"userActions": [
{
"module": 4,
"action": 1,
"tenant": 2,
"count": 49,
"aggregationLevel": 0
},
{
"module": 4,
"action": 3,
"tenant": 2,
"count": 2,
"aggregationLevel": 0
}
],
"meta": {
"total": 2,
"serverTime": "2021-04-15T08:55:20.421Z"
}
}
# GET tenants/:id/configurations
Generates: application/json , text/csv
path-param:
- id (Long): the tenantId query-param:
- from (String): has to be a date string with timezone. This string has to match following example
2016-06-01T07:54:07.000Z
. - to (String): has to be a date string with timezone. This string has to match following example
2016-06-01T07:54:07.000Z
. - configuratorId (String) : Configurator id of the requested statistics
- actions[] (List of Integer): List of integers of the Actions - only supported actions will be returned
If configuratorId is provided, the data is filtered to this configurator. Otherwise all tenant data is returned. Note: If the timeframe is missing or incomplete (from and/or to are missing) the call will return the statistic for the last 30 days
fields:
- link - link to the configuration
- thumbnail - thumbnail to the configuration perspective image
- created - date of creation - in aggregated entries it is the time of start of aggregation period
- action - string identifier of the action
- actionParameter - additional data regarding the action
- count
- aggregationLevel - string representation of aggregation level
- possible values:
- real time - un-aggregated
- daily - aggregated by day
- montlhy - aggregated by month Additional columns - depending on the requested action:
- userEmail - email of user who saved the configuration - users without consent are not returned as well as users of aggregated entries
- partList - a serialized json containing the part list of the configuration
- possible values:
sample results:
{
"tenantConfigutationStatistics":[
{
"link":"https://www.roomle.com/t/cp/?id=conf:igu:ration12345",
"thumbnail":"https://url.to.perspective/image.jpg",
"created":"2021-07-21T00:00:00.000Z",
"action":"Save",
"actionParameter":"",
"count":15,
"aggregationLevel":"daily",
"userEmail":"email.with@consent.com",
"partList":
{
"articleNr":"article1",
"count":1,
"label":"Frame without door",
"component_id":"frameComponent",
...
}
}
, ...
]
}
"link","thumbnail","created","action","actionParameter","count","aggregationLevel","userEmail","partList",
"https://www.roomle.com/t/cp/?id=conf:igu:rationB1AER98B1AE98RB1E98RB1","https://url.to.perspective/image1.jpg","2021-09-21T12:17:59.968Z","Saved Configuration","",1,"real time","email.with@consent.com","{""originPart"":{""articleNr"":""article1"",""count"":1,""label"":""Frame without door"",""component_id"":""frameComponent"",...}"
"https://www.roomle.com/t/cp/?id=conf:igu:rationF1V9AE8RB1AE98RB1ER98B","https://url.to.perspective/image2.jpg","2021-07-21T00:00:00.000Z","Saved Configuration","",5,"daily","","{""originPart"":{""articleNr"":""article2"",""count"":1,""label"":""Frame with door"","component_id"":""frameWithDoorComponent"",...}"
"https://www.roomle.com/t/cp/?id=catalog:item:NI1816321831681POOLKM484","https://url.to.perspective/image3.jpg","2021-02-01T00:00:00.000Z","Saved Configuration","",27,"monthly","","{""originPart"":{""articleNr"":""article3"",""count"":1,""label"":""Door"",""component_id"":""doorComponent"",...}"
"https://www.roomle.com/t/cp/?id=conf:igu:rationB1AER98B1AE98RB1E98RB1","https://url.to.perspective/image1.jpg","2021-09-21T12:17:59.968Z","View","",1,"real time","",""
please note that the date is the date of the first userAction that appeared within the aggregation period