Update device push token methods to more closely follow the official server response

This commit is contained in:
Daniel García 2018-12-06 16:28:36 +01:00
parent e34f75c267
commit dc1bb6de20
No known key found for this signature in database
GPG Key ID: FC8A7D14C3CD543A
1 changed files with 17 additions and 11 deletions

View File

@ -40,10 +40,8 @@ use db::models::*;
use api::{JsonResult, EmptyResult, JsonUpcase}; use api::{JsonResult, EmptyResult, JsonUpcase};
use auth::Headers; use auth::Headers;
#[put("/devices/identifier/<uuid>/clear-token", data = "<data>")] #[put("/devices/identifier/<uuid>/clear-token")]
fn clear_device_token(uuid: String, data: JsonUpcase<Value>, headers: Headers, conn: DbConn) -> EmptyResult { fn clear_device_token(uuid: String, headers: Headers, conn: DbConn) -> EmptyResult {
let _data: Value = data.into_inner().data;
let device = match Device::find_by_uuid(&uuid, &conn) { let device = match Device::find_by_uuid(&uuid, &conn) {
Some(device) => device, Some(device) => device,
None => err!("Device not found") None => err!("Device not found")
@ -53,10 +51,10 @@ fn clear_device_token(uuid: String, data: JsonUpcase<Value>, headers: Headers, c
err!("Device not owned by user") err!("Device not owned by user")
} }
match device.delete(&conn) { // This only clears push token
Ok(()) => Ok(()), // https://github.com/bitwarden/core/blob/master/src/Api/Controllers/DevicesController.cs#L109
Err(_) => err!("Failed deleting device") // https://github.com/bitwarden/core/blob/master/src/Core/Services/Implementations/DeviceService.cs#L37
} Ok(())
} }
#[put("/devices/identifier/<uuid>/token", data = "<data>")] #[put("/devices/identifier/<uuid>/token", data = "<data>")]
@ -72,9 +70,17 @@ fn put_device_token(uuid: String, data: JsonUpcase<Value>, headers: Headers, con
err!("Device not owned by user") err!("Device not owned by user")
} }
// TODO: What does this do? // This should save the push token, but we don't have push functionality
err!("Not implemented") use util::format_date;
Ok(Json(json!({
"Id": device.uuid,
"Name": device.name,
"Type": device.type_,
"Identifier": device.uuid,
"CreationDate": format_date(&device.created_at),
})))
} }
#[derive(Serialize, Deserialize, Debug)] #[derive(Serialize, Deserialize, Debug)]