Start work on event creation
This commit is contained in:
parent
744e0adfcf
commit
73e04e71d7
5 changed files with 36 additions and 3 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -489,11 +489,13 @@ version = "0.1.0"
|
|||
dependencies = [
|
||||
"directories",
|
||||
"http",
|
||||
"js_int",
|
||||
"log 0.4.8",
|
||||
"pretty_env_logger",
|
||||
"rocket",
|
||||
"ruma-api",
|
||||
"ruma-client-api",
|
||||
"ruma-events",
|
||||
"ruma-identifiers",
|
||||
"sled",
|
||||
]
|
||||
|
|
|
@ -16,3 +16,5 @@ sled = "0.31.0"
|
|||
directories = "2.0.2"
|
||||
ruma-identifiers = "0.14.1"
|
||||
ruma-api = "0.15.0-dev.1"
|
||||
ruma-events = "0.17.0"
|
||||
js_int = "0.1.3"
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
use directories::ProjectDirs;
|
||||
use ruma_events::collections::all::RoomEvent;
|
||||
use ruma_identifiers::UserId;
|
||||
|
||||
pub struct Data(sled::Db);
|
||||
|
@ -36,4 +37,6 @@ impl Data {
|
|||
.insert(user_id.to_string(), &*password.unwrap_or_default())
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
pub fn room_event_add(&self, room_event: &RoomEvent) {}
|
||||
}
|
||||
|
|
23
src/main.rs
23
src/main.rs
|
@ -1,6 +1,7 @@
|
|||
#![feature(proc_macro_hygiene, decl_macro)]
|
||||
mod data;
|
||||
mod ruma_wrapper;
|
||||
mod utils;
|
||||
|
||||
pub use data::Data;
|
||||
use log::debug;
|
||||
|
@ -13,8 +14,10 @@ use ruma_client_api::{
|
|||
},
|
||||
unversioned::get_supported_versions,
|
||||
};
|
||||
use ruma_identifiers::UserId;
|
||||
use ruma_events::room::message::MessageEvent;
|
||||
use ruma_identifiers::{EventId, UserId};
|
||||
use ruma_wrapper::{MatrixResult, Ruma};
|
||||
use std::convert::TryFrom;
|
||||
use std::{collections::HashMap, convert::TryInto};
|
||||
|
||||
#[get("/_matrix/client/versions")]
|
||||
|
@ -153,14 +156,28 @@ fn join_room_by_id_route(
|
|||
data = "<body>"
|
||||
)]
|
||||
fn create_message_event_route(
|
||||
data: State<Data>,
|
||||
_room_id: String,
|
||||
_event_type: String,
|
||||
_txn_id: String,
|
||||
body: Ruma<create_message_event::IncomingRequest>,
|
||||
) -> MatrixResult<create_message_event::Response> {
|
||||
dbg!(body);
|
||||
dbg!(&body);
|
||||
if let Ok(content) = body.data.clone().into_result() {
|
||||
data.room_event_add(
|
||||
&MessageEvent {
|
||||
content,
|
||||
event_id: EventId::try_from("$randomeventid:localhost").unwrap(),
|
||||
origin_server_ts: utils::millis_since_unix_epoch(),
|
||||
room_id: Some(body.room_id.clone()),
|
||||
sender: UserId::try_from("@TODO:localhost").unwrap(),
|
||||
unsigned: None,
|
||||
}
|
||||
.into(),
|
||||
);
|
||||
}
|
||||
MatrixResult(Ok(create_message_event::Response {
|
||||
event_id: "$randomeventid".try_into().unwrap(),
|
||||
event_id: "$randomeventid:localhost".try_into().unwrap(),
|
||||
}))
|
||||
}
|
||||
|
||||
|
|
9
src/utils.rs
Normal file
9
src/utils.rs
Normal file
|
@ -0,0 +1,9 @@
|
|||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
|
||||
pub fn millis_since_unix_epoch() -> js_int::UInt {
|
||||
(SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_millis() as u32)
|
||||
.into()
|
||||
}
|
Loading…
Add table
Reference in a new issue