[fractal] API, util: use endpoint in get_prev_batch_from
- From: Daniel Garcia Moreno <danigm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal] API, util: use endpoint in get_prev_batch_from
- Date: Thu, 2 Apr 2020 10:39:41 +0000 (UTC)
commit 6b03d362d67e3de43bde241c09035f9094698ad3
Author: Alejandro DomÃnguez <adomu net-c com>
Date: Tue Mar 10 09:33:27 2020 +0100
API, util: use endpoint in get_prev_batch_from
fractal-matrix-api/src/backend/media.rs | 2 +-
fractal-matrix-api/src/backend/room.rs | 2 +-
fractal-matrix-api/src/util.rs | 24 ++++++++++++++----------
3 files changed, 16 insertions(+), 12 deletions(-)
---
diff --git a/fractal-matrix-api/src/backend/media.rs b/fractal-matrix-api/src/backend/media.rs
index 68ce863e..6a75477c 100644
--- a/fractal-matrix-api/src/backend/media.rs
+++ b/fractal-matrix-api/src/backend/media.rs
@@ -52,7 +52,7 @@ pub fn get_media_list_async(
// FIXME: This should never be an empty token
.or_else(|| {
if let Some(ref id) = first_media_id {
- get_prev_batch_from(&baseu, &access_token, &room_id, id).ok()
+ get_prev_batch_from(baseu.clone(), access_token.clone(), &room_id, id).ok()
} else {
None
}
diff --git a/fractal-matrix-api/src/backend/room.rs b/fractal-matrix-api/src/backend/room.rs
index 22c025a6..301cec06 100644
--- a/fractal-matrix-api/src/backend/room.rs
+++ b/fractal-matrix-api/src/backend/room.rs
@@ -243,7 +243,7 @@ pub fn get_room_messages_from_msg(
let itx = bk.internal_tx.clone();
thread::spawn(move || {
- if let Ok(from) = get_prev_batch_from(&baseu, &tk, &room_id, &msg.id) {
+ if let Ok(from) = get_prev_batch_from(baseu.clone(), tk.clone(), &room_id, &msg.id) {
if let Some(t) = itx {
t.send(BKCommand::GetRoomMessages(baseu, tk, room_id, from))
.expect_log("Connection closed");
diff --git a/fractal-matrix-api/src/util.rs b/fractal-matrix-api/src/util.rs
index fde3d66e..57f3280d 100644
--- a/fractal-matrix-api/src/util.rs
+++ b/fractal-matrix-api/src/util.rs
@@ -1,6 +1,5 @@
use lazy_static::lazy_static;
use log::error;
-use serde_json::json;
use serde_json::Value as JsonValue;
@@ -21,6 +20,9 @@ use std::thread;
use crate::client::Client;
use crate::error::Error;
+use crate::r0::context::get_context::request as get_context;
+use crate::r0::context::get_context::Parameters as GetContextParameters;
+use crate::r0::context::get_context::Response as GetContextResponse;
use crate::r0::profile::get_profile::request as get_profile;
use crate::r0::profile::get_profile::Response as GetProfileResponse;
use crate::r0::AccessToken;
@@ -196,18 +198,20 @@ pub fn parse_m_direct(events: &Vec<JsonValue>) -> HashMap<UserId, Vec<RoomId>> {
}
pub fn get_prev_batch_from(
- baseu: &Url,
- tk: &AccessToken,
+ base: Url,
+ access_token: AccessToken,
room_id: &RoomId,
- evid: &str,
+ event_id: &str,
) -> Result<String, Error> {
- let params = &[("access_token", tk.to_string()), ("limit", 0.to_string())];
-
- let path = format!("rooms/{}/context/{}", room_id, evid);
- let url = build_url(baseu, &format!("/_matrix/client/r0/{}", path), params)?;
+ let params = GetContextParameters {
+ access_token,
+ limit: 0,
+ filter: Default::default(),
+ };
- let r = json_q("get", url, &json!(null))?;
- let prev_batch = r["start"].to_string().trim_matches('"').to_string();
+ let request = get_context(base, ¶ms, room_id, event_id)?;
+ let response: GetContextResponse = HTTP_CLIENT.get_client()?.execute(request)?.json()?;
+ let prev_batch = response.start.unwrap_or_default();
Ok(prev_batch)
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]