mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2025-10-15 19:21:57 +00:00
feat(hydra): Initial public commit for v12 support
# Conflicts: # src/core/info/room_version.rs # src/service/rooms/timeline/create.rs # Conflicts: # Cargo.lock # src/core/matrix/state_res/event_auth.rs # Conflicts: # Cargo.toml
This commit is contained in:
parent
51423c9d7d
commit
96a58f6d69
56 changed files with 950 additions and 385 deletions
|
@ -2,7 +2,7 @@ use std::cmp;
|
|||
|
||||
use axum::extract::State;
|
||||
use conduwuit::{
|
||||
PduCount, Result,
|
||||
Event, PduCount, Result,
|
||||
utils::{IterStream, ReadyExt, stream::TryTools},
|
||||
};
|
||||
use futures::{FutureExt, StreamExt, TryStreamExt};
|
||||
|
@ -68,7 +68,7 @@ pub(crate) async fn get_backfill_route(
|
|||
Ok(services
|
||||
.rooms
|
||||
.state_accessor
|
||||
.server_can_see_event(body.origin(), &pdu.room_id, &pdu.event_id)
|
||||
.server_can_see_event(body.origin(), &pdu.room_id_or_hash(), &pdu.event_id)
|
||||
.await
|
||||
.then_some(pdu))
|
||||
})
|
||||
|
|
|
@ -122,7 +122,7 @@ pub(crate) async fn create_join_event_template_route(
|
|||
..RoomMemberEventContent::new(MembershipState::Join)
|
||||
}),
|
||||
&body.user_id,
|
||||
&body.room_id,
|
||||
Some(&body.room_id),
|
||||
&state_lock,
|
||||
)
|
||||
.await?;
|
||||
|
|
|
@ -95,7 +95,7 @@ pub(crate) async fn create_knock_event_template_route(
|
|||
&RoomMemberEventContent::new(MembershipState::Knock),
|
||||
),
|
||||
&body.user_id,
|
||||
&body.room_id,
|
||||
Some(&body.room_id),
|
||||
&state_lock,
|
||||
)
|
||||
.await?;
|
||||
|
|
|
@ -45,7 +45,7 @@ pub(crate) async fn create_leave_event_template_route(
|
|||
&RoomMemberEventContent::new(MembershipState::Leave),
|
||||
),
|
||||
&body.user_id,
|
||||
&body.room_id,
|
||||
Some(&body.room_id),
|
||||
&state_lock,
|
||||
)
|
||||
.await?;
|
||||
|
|
|
@ -138,6 +138,7 @@ async fn handle(
|
|||
pdus: impl Stream<Item = Pdu> + Send,
|
||||
edus: impl Stream<Item = Edu> + Send,
|
||||
) -> Result<ResolvedMap> {
|
||||
// TODO(hydra): Does having no room ID break this?
|
||||
// group pdus by room
|
||||
let pdus = pdus
|
||||
.collect()
|
||||
|
@ -186,6 +187,7 @@ async fn handle_room(
|
|||
.lock(&room_id)
|
||||
.await;
|
||||
|
||||
// TODO(hydra): We might be missing a room ID
|
||||
let room_id = &room_id;
|
||||
pdus.try_stream()
|
||||
.and_then(|(_, event_id, value)| async move {
|
||||
|
|
|
@ -175,7 +175,11 @@ pub(crate) async fn create_knock_event_v1_route(
|
|||
.send_pdu_room(&body.room_id, &pdu_id)
|
||||
.await?;
|
||||
|
||||
let knock_room_state = services.rooms.state.summary_stripped(&pdu).await;
|
||||
let knock_room_state = services
|
||||
.rooms
|
||||
.state
|
||||
.summary_stripped(&pdu, &body.room_id)
|
||||
.await;
|
||||
|
||||
Ok(send_knock::v1::Response { knock_room_state })
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue