getDataUsageStats method
Future<Response<BuiltList<AggregatedDataUsageStats> > >
getDataUsageStats({
- required String aggrInterval,
- Date? dateAfter,
- Date? dateBefore,
- BuiltList<
String> ? deviceTypeIn, - BuiltList<
String> ? deviceIn, - String? sortBy,
- CancelToken? cancelToken,
- Map<
String, dynamic> ? headers, - Map<
String, dynamic> ? extra, - ValidateStatus? validateStatus,
- ProgressCallback? onSendProgress,
- ProgressCallback? onReceiveProgress,
Data Usage Stats Users data usage dtatistics for each device
Parameters:
aggrInterval
- No more than 3 days for hour aggregation typedateAfter
- No more than 3 months between date_after and date_beforedateBefore
- No more than 3 months between date_after and date_beforedeviceTypeIn
- Filter by device typedeviceIn
- Filter by devicesortBy
- Sort output bycancelToken
- ACancelToken
that can be used to cancel the operationheaders
- Can be used to add additional headers to the requestextras
- Can be used to add flags to the requestvalidateStatus
- AValidateStatus
callback that can be used to determine request success based on the HTTP status of the responseonSendProgress
- AProgressCallback
that can be used to get the send progressonReceiveProgress
- AProgressCallback
that can be used to get the receive progress
Returns a Future containing a Response
with a BuiltList<AggregatedDataUsageStats>
as data
Throws DioError
if API call or serialization fails
Implementation
Future<Response<BuiltList<AggregatedDataUsageStats>>> getDataUsageStats({
required String aggrInterval,
Date? dateAfter,
Date? dateBefore,
BuiltList<String>? deviceTypeIn,
BuiltList<String>? deviceIn,
String? sortBy,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/analytics/data-usage/';
final _options = Options(
method: r'GET',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearerAuth',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _queryParameters = <String, dynamic>{
r'aggr_interval': encodeQueryParameter(_serializers, aggrInterval, const FullType(String)),
if (dateAfter != null) r'date_after': encodeQueryParameter(_serializers, dateAfter, const FullType(Date)),
if (dateBefore != null) r'date_before': encodeQueryParameter(_serializers, dateBefore, const FullType(Date)),
if (deviceTypeIn != null) r'device_type__in': encodeCollectionQueryParameter<String>(_serializers, deviceTypeIn, const FullType(BuiltList, [FullType(String)]), format: ListFormat.multi,),
if (deviceIn != null) r'device__in': encodeCollectionQueryParameter<String>(_serializers, deviceIn, const FullType(BuiltList, [FullType(String)]), format: ListFormat.multi,),
if (sortBy != null) r'sort_by': encodeQueryParameter(_serializers, sortBy, const FullType(String)),
};
final _response = await _dio.request<Object>(
_path,
options: _options,
queryParameters: _queryParameters,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
BuiltList<AggregatedDataUsageStats>? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(BuiltList, [FullType(AggregatedDataUsageStats)]),
) as BuiltList<AggregatedDataUsageStats>;
} catch (error, stackTrace) {
throw DioError(
requestOptions: _response.requestOptions,
response: _response,
type: DioErrorType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<BuiltList<AggregatedDataUsageStats>>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}