diff --git a/src/api/core/mod.rs b/src/api/core/mod.rs index 46ee76e..a6e32c9 100644 --- a/src/api/core/mod.rs +++ b/src/api/core/mod.rs @@ -28,28 +28,22 @@ pub fn routes() -> Vec { /// /// Move this somewhere else /// - use rocket::Route; use rocket_contrib::json::Json; use serde_json::Value; use crate::db::DbConn; -use crate::db::models::*; -use crate::api::{JsonResult, EmptyResult, JsonUpcase}; +use crate::api::{EmptyResult, JsonResult, JsonUpcase}; use crate::auth::Headers; #[put("/devices/identifier//clear-token")] -fn clear_device_token(uuid: String, headers: Headers, conn: DbConn) -> EmptyResult { - let device = match Device::find_by_uuid(&uuid, &conn) { - Some(device) => device, - None => err!("Device not found") - }; +fn clear_device_token(uuid: String) -> EmptyResult { + // This endpoint doesn't have auth header - if device.user_uuid != headers.user.uuid { - err!("Device not owned by user") - } + let _ = uuid; + // uuid is not related to deviceId // This only clears push token // https://github.com/bitwarden/core/blob/master/src/Api/Controllers/DevicesController.cs#L109 @@ -58,28 +52,20 @@ fn clear_device_token(uuid: String, headers: Headers, conn: DbConn) -> EmptyResu } #[put("/devices/identifier//token", data = "")] -fn put_device_token(uuid: String, data: JsonUpcase, headers: Headers, conn: DbConn) -> JsonResult { +fn put_device_token(uuid: String, data: JsonUpcase, headers: Headers) -> JsonResult { let _data: Value = data.into_inner().data; + // Data has a single string value "PushToken" + let _ = uuid; + // uuid is not related to deviceId - let device = match Device::find_by_uuid(&uuid, &conn) { - Some(device) => device, - None => err!("Device not found") - }; - - if device.user_uuid != headers.user.uuid { - err!("Device not owned by user") - } - - // This should save the push token, but we don't have push functionality - - use crate::util::format_date; + // TODO: This should save the push token, but we don't have push functionality Ok(Json(json!({ - "Id": device.uuid, - "Name": device.name, - "Type": device.type_, - "Identifier": device.uuid, - "CreationDate": format_date(&device.created_at), + "Id": headers.device.uuid, + "Name": headers.device.name, + "Type": headers.device.type_, + "Identifier": headers.device.uuid, + "CreationDate": crate::util::format_date(&headers.device.created_at), }))) } @@ -114,7 +100,6 @@ fn get_eq_domains(headers: Headers) -> JsonResult { }))) } - #[derive(Deserialize, Debug)] #[allow(non_snake_case)] struct EquivDomainData { @@ -137,9 +122,8 @@ fn post_eq_domains(data: JsonUpcase, headers: Headers, conn: Db match user.save(&conn) { Ok(()) => Ok(Json(json!({}))), - Err(_) => err!("Failed to save user") + Err(_) => err!("Failed to save user"), } - } #[put("/settings/domains", data = "")] diff --git a/src/main.rs b/src/main.rs index 0566d6b..963f82f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,6 +24,9 @@ mod auth; mod mail; fn init_rocket() -> Rocket { + + // TODO: TO HIDE MOUNTING LOG, call ignite, set logging to disabled, call all the mounts, and then enable it again + rocket::ignite() .mount("/", api::web_routes()) .mount("/api", api::core_routes()) @@ -77,6 +80,7 @@ fn init_logging() -> Result<(), fern::InitError> { .level(log::LevelFilter::Debug) .level_for("hyper", log::LevelFilter::Warn) .level_for("ws", log::LevelFilter::Info) + .level_for("multipart", log::LevelFilter::Info) .chain(std::io::stdout()); if let Some(log_file) = CONFIG.log_file.as_ref() {