CommonApiParams.fromUri constructor

CommonApiParams.fromUri(
  1. Uri uri
)

Implementation

factory CommonApiParams.fromUri(Uri uri) {
  final params = uri.queryParameters;

  Map<String, dynamic>? filter;
  if (params.containsKey('filter')) {
    try {
      filter = jsonDecode(params['filter']!);
    } catch (_) {}
  }

  int? skip;
  if (params.containsKey('skip')) {
    skip = int.tryParse(params['skip']!);
  }

  int? limit;
  if (params.containsKey('limit')) {
    limit = int.tryParse(params['limit']!);
  }

  List<ApiPopulate>? deepPopulate;
  if (params.containsKey('deepPopulate')) {
    try {
      final decoded = jsonDecode(params['deepPopulate']!);
      if (decoded is List) {
        deepPopulate =
            decoded.map((e) => ApiPopulate.fromMap(e as Map<String, dynamic>)).toList();
      }
    } catch (_) {}
  }

  return CommonApiParams(
    key: params['key'],
    filter: filter,
    skip: skip,
    limit: limit,
    sort: params['sort'],
    select: params['select'],
    populate: params['populate'],
    deepPopulate: deepPopulate,
  );
}