From d94a49d8413c00cd12380af2cbd3b0c70c4b7609 Mon Sep 17 00:00:00 2001 From: Harpo Roeder <roederharpo@protonmail.ch> Date: Wed, 12 Jul 2023 16:39:44 -0500 Subject: [PATCH] update getQueryIndex and add getQueryLatest --- .../com/futo/polycentric/core/ApiMethods.kt | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/futo/polycentric/core/ApiMethods.kt b/app/src/main/java/com/futo/polycentric/core/ApiMethods.kt index d56b13e..f6ad72f 100644 --- a/app/src/main/java/com/futo/polycentric/core/ApiMethods.kt +++ b/app/src/main/java/com/futo/polycentric/core/ApiMethods.kt @@ -77,15 +77,15 @@ class ApiMethods { return Protocol.Events.parseFrom(result.get()) } - fun getQueryIndex(server: String, system: Protocol.PublicKey, eventTypes: List<Long>, limit: Int? = null): Protocol.Events { + fun getQueryIndex(server: String, system: Protocol.PublicKey, contentType: Long, after: Int? = null, limit: Int? = null): Protocol.QueryIndexResponse { val systemQuery = system.toByteArray().toBase64Url() - val eventTypesQuery = Protocol.RepeatedUInt64.newBuilder() - .addAllNumbers(eventTypes).build().toByteArray().toBase64Url() - val path = if (limit != null) { - "/query_index?system=$systemQuery&event_types=$eventTypesQuery&limit=$limit" + val path = if (after != null && limit != null) { + "/query_index?system=$systemQuery&content_type=$contentType&after=$after&limit=$limit" + } else if (limit != null) { + "/query_index?system=$systemQuery&content_type=$contentType&limit=$limit" } else { - "/query_index?system=$systemQuery&event_types=$eventTypesQuery" + "/query_index?system=$systemQuery&content_type=$contentType" } val (_, response, result) = "$server$path".httpGet() .header(Headers.CONTENT_TYPE, "application/octet-stream") @@ -96,6 +96,25 @@ class ApiMethods { throw Exception(formattedMessage) } + return Protocol.QueryIndexResponse.parseFrom(result.get()) + } + + fun getQueryLatest(server: String, system: Protocol.PublicKey, eventTypes: List<Long>): Protocol.Events { + val systemQuery = system.toByteArray().toBase64Url() + val eventTypesQuery = Protocol.RepeatedUInt64.newBuilder() + .addAllNumbers(eventTypes).build().toByteArray().toBase64Url() + + val path = "/query_latest?system=$systemQuery&event_types=$eventTypesQuery"; + + val (_, response, result) = "$server$path".httpGet() + .header(Headers.CONTENT_TYPE, "application/octet-stream") + .response() + + if (!response.isSuccessful) { + val formattedMessage = "getQueryLatest to $server failed with status code ${response.statusCode}. Response body: ${response.body().toByteArray().decodeToString()}" + throw Exception(formattedMessage) + } + return Protocol.Events.parseFrom(result.get()) } @@ -125,4 +144,4 @@ class ApiMethods { return Protocol.QueryReferencesResponse.parseFrom(result.get()) } } -} \ No newline at end of file +} -- GitLab