listSubmissions method

Future<List<SubmissionModel>> listSubmissions(
  1. String formPath, {
  2. int? limit,
  3. int? skip,
  4. String? sort,
  5. Map<String, dynamic>? filter,
})

Lists all submissions for a given form.

formPath is the full path to the form (e.g. '/registration'). limit maximum number of submissions to return. skip number of submissions to skip (for pagination). sort field to sort by (prefix with - for descending, e.g. '-created'). filter query parameters for filtering submissions.

Throws SubmissionException on error.

Implementation

Future<List<SubmissionModel>> listSubmissions(
  String formPath, {
  int? limit,
  int? skip,
  String? sort,
  Map<String, dynamic>? filter,
}) async {
  try {
    final queryParams = <String, dynamic>{};
    if (limit != null) queryParams['limit'] = limit;
    if (skip != null) queryParams['skip'] = skip;
    if (sort != null) queryParams['sort'] = sort;
    if (filter != null) queryParams.addAll(filter);

    final url = ApiEndpoints.listSubmissions(formPath);
    final response = await client.dio.get(
      url,
      queryParameters: queryParams,
    );

    if (response.data is List) {
      return (response.data as List).map((json) => SubmissionModel.fromJson(json as Map<String, dynamic>)).toList();
    }
    return [];
  } catch (e) {
    throw SubmissionException('Failed to list submissions: $e');
  }
}