diff --git a/src/api/core/sends.rs b/src/api/core/sends.rs index b69c4309f6d30583f3f3029bfdbd61bcd01943eb..86f73af40fe211af8353ecf40046a44f6b1a55dc 100644 --- a/src/api/core/sends.rs +++ b/src/api/core/sends.rs @@ -231,7 +231,7 @@ fn post_access(access_id: String, data: JsonUpcase<SendAccessData>, conn: DbConn send.save(&conn)?; - Ok(Json(send.to_json())) + Ok(Json(send.to_json_access())) } #[post("/sends/<send_id>/access/file/<file_id>", data = "<data>")] diff --git a/src/db/models/send.rs b/src/db/models/send.rs index d7a7a8720c5b14f3158348cc976b3d8e812a9107..8834a356b533a7e0e91463f32af964d37f63a237 100644 --- a/src/db/models/send.rs +++ b/src/db/models/send.rs @@ -130,6 +130,24 @@ impl Send { "Object": "send", }) } + + pub fn to_json_access(&self) -> Value { + use crate::util::format_date; + + let data: Value = serde_json::from_str(&self.data).unwrap_or_default(); + + json!({ + "Id": self.uuid, + "Type": self.atype, + + "Name": self.name, + "Text": if self.atype == SendType::Text as i32 { Some(&data) } else { None }, + "File": if self.atype == SendType::File as i32 { Some(&data) } else { None }, + + "ExpirationDate": self.expiration_date.as_ref().map(format_date), + "Object": "send-access", + }) + } } use crate::db::DbConn;