summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTimo Kösters <timo@koesters.xyz>2022-12-17 09:21:19 +0100
committerTimo Kösters <timo@koesters.xyz>2022-12-17 09:28:08 +0100
commitf1d25746511dfaa16d4316b76d71275bd0a8a35a (patch)
treec25a455c11143e35690a9297c924bbfa3d9319a6 /src
parentd39ce1401d773a0b68515b8ae1a434f37abfc650 (diff)
downloadconduit-f1d25746511dfaa16d4316b76d71275bd0a8a35a.zip
finish upgrade ruma
Diffstat (limited to 'src')
-rw-r--r--src/api/client_server/push.rs43
-rw-r--r--src/main.rs8
-rw-r--r--src/service/pusher/mod.rs18
-rw-r--r--src/service/rooms/event_handler/mod.rs2
-rw-r--r--src/service/rooms/state_cache/mod.rs2
-rw-r--r--src/utils/error.rs5
6 files changed, 40 insertions, 38 deletions
diff --git a/src/api/client_server/push.rs b/src/api/client_server/push.rs
index affd8e8..b044138 100644
--- a/src/api/client_server/push.rs
+++ b/src/api/client_server/push.rs
@@ -9,7 +9,7 @@ use ruma::{
},
},
events::{push_rules::PushRulesEvent, GlobalAccountDataEventType},
- push::{ConditionalPushRuleInit, PatternedPushRuleInit, SimplePushRuleInit},
+ push::{ConditionalPushRuleInit, NewPushRule, PatternedPushRuleInit, SimplePushRuleInit},
};
/// # `GET /_matrix/client/r0/pushrules`
@@ -132,66 +132,65 @@ pub async fn set_pushrule_route(
.map_err(|_| Error::bad_database("Invalid account data event in db."))?;
let global = &mut account_data.content.global;
- match body.kind {
- RuleKind::Override => {
+ match body.rule {
+ NewPushRule::Override(rule) => {
global.override_.replace(
ConditionalPushRuleInit {
- actions: body.actions,
+ actions: rule.actions,
default: false,
enabled: true,
- rule_id: body.rule_id,
- conditions: body.conditions,
+ rule_id: rule.rule_id,
+ conditions: rule.conditions,
}
.into(),
);
}
- RuleKind::Underride => {
+ NewPushRule::Underride(rule) => {
global.underride.replace(
ConditionalPushRuleInit {
- actions: body.actions,
+ actions: rule.actions,
default: false,
enabled: true,
- rule_id: body.rule_id,
- conditions: body.conditions,
+ rule_id: rule.rule_id,
+ conditions: rule.conditions,
}
.into(),
);
}
- RuleKind::Sender => {
+ NewPushRule::Sender(rule) => {
global.sender.replace(
SimplePushRuleInit {
- actions: body.actions,
+ actions: rule.actions,
default: false,
enabled: true,
- rule_id: body.rule_id,
+ rule_id: rule.rule_id,
}
.into(),
);
}
- RuleKind::Room => {
+ NewPushRule::Room(rule) => {
global.room.replace(
SimplePushRuleInit {
- actions: body.actions,
+ actions: rule.actions,
default: false,
enabled: true,
- rule_id: body.rule_id,
+ rule_id: rule.rule_id,
}
.into(),
);
}
- RuleKind::Content => {
+ NewPushRule::Content(rule) => {
global.content.replace(
PatternedPushRuleInit {
- actions: body.actions,
+ actions: rule.actions,
default: false,
enabled: true,
- rule_id: body.rule_id,
- pattern: body.pattern.unwrap_or_default(),
+ rule_id: rule.rule_id,
+ pattern: rule.pattern,
}
.into(),
);
}
- _ => {}
}
services().account_data.update(
@@ -212,7 +211,7 @@ pub async fn get_pushrule_actions_route(
) -> Result<get_pushrule_actions::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
- if body.scope != "global" {
+ if body.scope != RuleScope::Global {
return Err(Error::BadRequest(
ErrorKind::InvalidParam,
"Scopes other than 'global' are not supported.",
diff --git a/src/main.rs b/src/main.rs
index e754b84..013c4de 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -29,7 +29,7 @@ use http::{
use opentelemetry::trace::{FutureExt, Tracer};
use ruma::api::{
client::{
- error::{Error as RumaError, ErrorKind},
+ error::{Error as RumaError, ErrorBody, ErrorKind},
uiaa::UiaaResponse,
},
IncomingRequest,
@@ -223,8 +223,10 @@ async fn unrecognized_method<B>(
if inner.status() == axum::http::StatusCode::METHOD_NOT_ALLOWED {
warn!("Method not allowed: {method} {uri}");
return Ok(RumaResponse(UiaaResponse::MatrixError(RumaError {
- kind: ErrorKind::Unrecognized,
- message: "M_UNRECOGNIZED: Unrecognized request".to_owned(),
+ body: ErrorBody::Standard {
+ kind: ErrorKind::Unrecognized,
+ message: "M_UNRECOGNIZED: Unrecognized request".to_owned(),
+ },
status_code: StatusCode::METHOD_NOT_ALLOWED,
}))
.into_response());
diff --git a/src/service/pusher/mod.rs b/src/service/pusher/mod.rs
index d3d157c..ba096a2 100644
--- a/src/service/pusher/mod.rs
+++ b/src/service/pusher/mod.rs
@@ -239,12 +239,12 @@ impl Service {
device.tweaks = tweaks.clone();
}
- let d = &[device];
+ let d = vec![device];
let mut notifi = Notification::new(d);
notifi.prio = NotificationPriority::Low;
- notifi.event_id = Some(&event.event_id);
- notifi.room_id = Some(&event.room_id);
+ notifi.event_id = Some((*event.event_id).to_owned());
+ notifi.room_id = Some((*event.room_id).to_owned());
// TODO: missed calls
notifi.counts = NotificationCounts::new(unread, uint!(0));
@@ -260,18 +260,16 @@ impl Service {
self.send_request(&http.url, send_event_notification::v1::Request::new(notifi))
.await?;
} else {
- notifi.sender = Some(&event.sender);
- notifi.event_type = Some(&event.kind);
- let content = serde_json::value::to_raw_value(&event.content).ok();
- notifi.content = content.as_deref();
+ notifi.sender = Some(event.sender.clone());
+ notifi.event_type = Some(event.kind.clone());
+ notifi.content = serde_json::value::to_raw_value(&event.content).ok();
if event.kind == RoomEventType::RoomMember {
notifi.user_is_target =
event.state_key.as_deref() == Some(event.sender.as_str());
}
- let user_name = services().users.displayname(&event.sender)?;
- notifi.sender_display_name = user_name.as_deref();
+ notifi.sender_display_name = services().users.displayname(&event.sender)?;
let room_name = if let Some(room_name_pdu) = services()
.rooms
@@ -287,7 +285,7 @@ impl Service {
None
};
- notifi.room_name = room_name.as_deref();
+ notifi.room_name = room_name;
self.send_request(&http.url, send_event_notification::v1::Request::new(notifi))
.await?;
diff --git a/src/service/rooms/event_handler/mod.rs b/src/service/rooms/event_handler/mod.rs
index 85d21bf..3c49349 100644
--- a/src/service/rooms/event_handler/mod.rs
+++ b/src/service/rooms/event_handler/mod.rs
@@ -1113,7 +1113,7 @@ impl Service {
.send_federation_request(
origin,
get_event::v1::Request {
- event_id: next_id.into(),
+ event_id: (*next_id).to_owned(),
},
)
.await
diff --git a/src/service/rooms/state_cache/mod.rs b/src/service/rooms/state_cache/mod.rs
index 6c9bed3..32afdd4 100644
--- a/src/service/rooms/state_cache/mod.rs
+++ b/src/service/rooms/state_cache/mod.rs
@@ -164,7 +164,7 @@ impl Service {
.content
.ignored_users
.iter()
- .any(|user| user == sender)
+ .any(|(user, _details)| user == sender)
});
if is_ignored {
diff --git a/src/utils/error.rs b/src/utils/error.rs
index 0ef13ce..3e0d8ca 100644
--- a/src/utils/error.rs
+++ b/src/utils/error.rs
@@ -102,7 +102,10 @@ impl Error {
if let Self::FederationError(origin, error) = self {
let mut error = error.clone();
- error.message = format!("Answer from {}: {}", origin, error.message);
+ error.body = ErrorBody::Standard {
+ kind: Unknown,
+ message: format!("Answer from {}: {}", origin, error),
+ };
return RumaResponse(UiaaResponse::MatrixError(error));
}