getWebsiteSessions method

Future<Map<String, dynamic>?> getWebsiteSessions({
  1. required String token,
  2. required String websiteId,
  3. required int startAt,
  4. required int endAt,
  5. String? query,
  6. int? page,
  7. int? pageSize,
  8. String? orderBy,
})

Gets website session details within a time range.

token JWT authentication token. websiteId Website ID. startAt Start timestamp (ms). endAt End timestamp (ms). query Search text (optional). page Page (optional). pageSize Page size (optional). orderBy Order by (optional). Returns a Map with the data or null on error.

Implementation

Future<Map<String, dynamic>?> getWebsiteSessions({
  required String token,
  required String websiteId,
  required int startAt,
  required int endAt,
  String? query,
  int? page,
  int? pageSize,
  String? orderBy,
}) async {
  final params = <String, String>{
    'startAt': startAt.toString(),
    'endAt': endAt.toString(),
    if (query != null) 'query': query,
    if (page != null) 'page': page.toString(),
    if (pageSize != null) 'pageSize': pageSize.toString(),
    if (orderBy != null) 'orderBy': orderBy,
  };
  final uri = Uri.parse('$endpoint/api/websites/$websiteId/sessions').replace(queryParameters: params);
  final response = await http.get(
    uri,
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer $token',
    },
  );
  if (response.statusCode == 200) {
    return jsonDecode(response.body);
  }
  debugPrint('Failed to fetch website sessions: ${response.statusCode} ${response.body}');
  return null;
}