ModelQuery.fromPath constructor

ModelQuery.fromPath(
  1. String path
)

Class for sending queries to the model.

Basically, it allows you to send the same query as Firestore.

Can be converted to a String by passing value.

Implementation

factory ModelQuery.fromPath(String path) {
  if (path.isEmpty) {
    return ModelQuery(path);
  }
  final uri = Uri.tryParse(path);
  if (uri == null) {
    return ModelQuery(path);
  }
  final query = uri.queryParameters;

  return ModelQuery(
    uri.path,
    key: _parseQuery(query, "key"),
    isEqualTo: _parseQuery(query, "equalTo"),
    isNotEqualTo: _parseQuery(query, "notEqualTo"),
    isLessThanOrEqualTo: _parseQuery(query, "endAt"),
    isGreaterThanOrEqualTo: _parseQuery(query, "startAt"),
    arrayContains: _parseQuery(query, "contains"),
    arrayContainsAny: _parseQuery(query, "containsAny", true),
    whereIn: _parseQuery(query, "whereIn", true),
    whereNotIn: _parseQuery(query, "whereNotIn", true),
    geoHash: _parseQuery(query, "geoHash", true),
    orderBy: () {
      if (query.containsKey("orderByDesc")) {
        return query["orderByDesc"];
      } else if (query.containsKey("orderByAsc")) {
        return query["orderByAsc"];
      }
    }(),
    order: () {
      if (query.containsKey("orderByDesc")) {
        return ModelQueryOrder.desc;
      } else {
        return ModelQueryOrder.asc;
      }
    }(),
    limit: _parseQuery(query, "limitToFirst"),
  );
}