value property

String value

Convert all Query to String parameters.

Implementation

String get value {
  assert(
    (key == null &&
            (isEqualTo == null &&
                isNotEqualTo == null &&
                isLessThanOrEqualTo == null &&
                isGreaterThanOrEqualTo == null &&
                arrayContains == null &&
                arrayContainsAny == null &&
                whereIn == null &&
                whereNotIn == null &&
                geoHash == null)) ||
        (key != null &&
            (isEqualTo != null ||
                isNotEqualTo != null ||
                isLessThanOrEqualTo != null ||
                isGreaterThanOrEqualTo != null ||
                arrayContains != null ||
                arrayContainsAny != null ||
                whereIn != null ||
                whereNotIn != null ||
                geoHash != null)),
    "If you want to specify a condition, please specify [key].",
  );
  if (key.isEmpty) {
    final parameters = _limit(_order()).trimString("&");
    if (parameters.isEmpty) {
      return path;
    } else {
      return "$path?$parameters";
    }
  }
  final tmp = "key=$key";
  if (isEqualTo != null) {
    return "$path?${_limit(_order("$tmp&equalTo=$isEqualTo")).trimString("&")}";
  } else if (isNotEqualTo != null) {
    return "$path?${_limit(_order("$tmp&notEqualTo=$isNotEqualTo")).trimString("&")}";
  } else if (isLessThanOrEqualTo != null) {
    if (isGreaterThanOrEqualTo != null) {
      return "$path?${_limit(_order("$tmp&startAt=$isGreaterThanOrEqualTo&endAt=$isLessThanOrEqualTo")).trimString("&")}";
    }
    return "$path?${_limit(_order("$tmp&endAt=$isLessThanOrEqualTo")).trimString("&")}";
  } else if (isGreaterThanOrEqualTo != null) {
    if (isLessThanOrEqualTo != null) {
      return "$path?${_limit(_order("$tmp&startAt=$isGreaterThanOrEqualTo&endAt=$isLessThanOrEqualTo")).trimString("&")}";
    }
    return "$path?${_limit(_order("$tmp&startAt=$isGreaterThanOrEqualTo")).trimString("&")}";
  } else if (arrayContains != null) {
    return "$path?${_limit(_order("$tmp&contains=$arrayContains")).trimString("&")}";
  } else if (arrayContainsAny != null) {
    return "$path?" +
        _limit(
          _order(
            "$tmp&containsAny=${arrayContainsAny!.map((e) => e.toString()).join(",")}",
          ),
        ).trimString("&");
  } else if (whereIn != null) {
    return "$path?" +
        _limit(
          _order(
            "$tmp&whereIn=${whereIn!.map((e) => e.toString()).join(",")}",
          ),
        ).trimString("&");
  } else if (whereNotIn != null) {
    return "$path?" +
        _limit(
          _order(
            "$tmp&whereNotIn=${whereNotIn!.map((e) => e.toString()).join(",")}",
          ),
        ).trimString("&");
  } else if (geoHash != null) {
    return "$path?" +
        _limit(
          _order(
            "$tmp&geoHash=${geoHash!.map((e) => e.toString()).join(",")}",
          ),
        ).trimString("&");
  }
  return "$path?${tmp.trimString("&")}";
}