supabase-community / postgrest-kt

Postgrest Kotlin Client
53 stars 8 forks source link

Internal Map doesn't allow url params with the same keys #14

Open prilaga opened 1 year ago

prilaga commented 1 year ago
  val postgrestClient = PostgrestDefaultClient(
                    uri = URI("https://......."),
                    headers = mapOf("piu" to "kjxhzfldjfglekjblcnakuefhlk")
                )

                return postgrestClient.from<Message>("table_name")
                    .select("*")
                    .ilike("key", "%hello%")
                    .gt("like", 1_000_000) // Greater than
                    .lt("like", 3_000_000) // Less than
                    .order("like", false)
                    .limit(10)
                    .execute()

"value", 1_000_000 - will never be added to the request, because internal map will rewrite it with "value", 3_000_000 Recommendation to use multi map and then build a request.

ponytailer commented 1 year ago

You should use the

rangeGt rangeGte and etc.

prilaga commented 1 year ago

@ponytailer Could you please write an example, how to use it? What is the format of range parameter in the method? For example int field "count" - range: "500, 600" or "[500,600]" or "{500,600}".

fun rangeGt(column: String, range: String): PostgrestFilterBuilder<T> {
        setSearchParam(column, "sr.${range}")
        return this
    }
ponytailer commented 1 year ago

@ponytailer Could you please write an example, how to use it?

What is the format of range parameter in the method?

For example int field "count" - range: "500, 600" or "[500,600]" or "{500,600}".


fun rangeGt(column: String, range: String): PostgrestFilterBuilder<T> {

        setSearchParam(column, "sr.${range}")

        return this

    }

https://postgrest.org/en/stable/api.html?highlight=nxl#operators