diff --git a/Cargo.toml b/Cargo.toml index 3adca5409cc804b0c3234ee0281560039222502f..13b38f3811923ca703976ebb0e875987ad08c46b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,3 +19,4 @@ ruma-api = "0.15.0" ruma-events = "0.18.0" js_int = "0.1.3" serde_json = "1.0.50" +ruma-signatures = "0.5.0" diff --git a/src/main.rs b/src/main.rs index cf1f37f7e5ef8298b301d33ff33a14344f900515..6cf5477bb16e18ac8d45260fac98848c5264ce0f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -218,20 +218,21 @@ fn create_message_event_route( _txn_id: String, body: Ruma<create_message_event::Request>, ) -> MatrixResult<create_message_event::Response> { + // Construct event + let event = Event::RoomMessage(MessageEvent { + content: body.data.clone().into_result().unwrap(), + event_id: event_id.clone(), + origin_server_ts: utils::millis_since_unix_epoch(), + room_id: Some(body.room_id.clone()), + sender: body.user_id.clone().expect("user is authenticated"), + unsigned: Map::default(), + }); + // Generate event id + dbg!(ruma_signatures::reference_hash(event)); + let event_id = EventId::try_from("$TODOrandomeventid:localhost").unwrap(); - data.event_add( - &body.room_id, - &event_id, - &Event::RoomMessage(MessageEvent { - content: body.data.clone().into_result().unwrap(), - event_id: event_id.clone(), - origin_server_ts: utils::millis_since_unix_epoch(), - room_id: Some(body.room_id.clone()), - sender: body.user_id.clone().expect("user is authenticated"), - unsigned: Map::default(), - }), - ); + data.event_add(&body.room_id, &event_id, &event); MatrixResult(Ok(create_message_event::Response { event_id })) }