getEventParticipants method

Future<List<EventParticipant>?> getEventParticipants({
  1. int? eventId,
  2. int? runetId,
  3. int? userId,
  4. String? email,
  5. String? username,
  6. int limit = 10,
  7. int offset = 0,
})

Implementation

Future<List<EventParticipant>?> getEventParticipants({
  int? eventId,
  int? runetId,
  int? userId,
  String? email,
  String? username,
  int limit = 10,
  int offset = 0,
}) async {
  if (runetId == null && userId == null && email == null && username == null && eventId == null) {
    return null;
  }

  String uri = "";

  if (runetId != null) {
    uri = "$uri&filter[runet_id]=$runetId";
  }
  if (userId != null) {
    uri = "$uri&filter[user_id]=$userId";
  }
  if (email != null) {
    uri = "$uri&filter[mail]=$email";
  }
  if (username != null) {
    uri = "$uri&filter[username]=$username";
  }
  if (eventId != null) {
    uri = "$uri&filter[event_id]=$eventId";
  }

  final response = await client.get("/event/$eventId/participant/list?limit=$limit&offset=$offset$uri");

  if (response.statusCode == 200) {
    final res = response.data;

    var data = res['data'] as List<dynamic>;

    if (data.isEmpty) {
      return null;
    }

    List<EventParticipant> participants = data.map((e) => EventParticipant.fromJson(e as Map<String, dynamic>)).toList();

    return participants;
  } else {
    throw Exception('Failed to load participants');
  }
}