|
|
@ -7,7 +7,7 @@ use rocket_contrib::json::Json; |
|
|
|
use serde_json::Value; |
|
|
|
|
|
|
|
use crate::{ |
|
|
|
api::{ApiResult, EmptyResult, JsonResult, JsonUpcase, Notify, UpdateType}, |
|
|
|
api::{ApiResult, EmptyResult, JsonResult, JsonUpcase, Notify, NumberOrString, UpdateType}, |
|
|
|
auth::{Headers, Host}, |
|
|
|
db::{models::*, DbConn, DbPool}, |
|
|
|
util::SafeString, |
|
|
@ -42,21 +42,21 @@ pub fn purge_sends(pool: DbPool) { |
|
|
|
|
|
|
|
#[derive(Deserialize)] |
|
|
|
#[allow(non_snake_case)] |
|
|
|
pub struct SendData { |
|
|
|
pub Type: i32, |
|
|
|
pub Key: String, |
|
|
|
pub Password: Option<String>, |
|
|
|
pub MaxAccessCount: Option<i32>, |
|
|
|
pub ExpirationDate: Option<DateTime<Utc>>, |
|
|
|
pub DeletionDate: DateTime<Utc>, |
|
|
|
pub Disabled: bool, |
|
|
|
pub HideEmail: Option<bool>, |
|
|
|
struct SendData { |
|
|
|
Type: i32, |
|
|
|
Key: String, |
|
|
|
Password: Option<String>, |
|
|
|
MaxAccessCount: Option<NumberOrString>, |
|
|
|
ExpirationDate: Option<DateTime<Utc>>, |
|
|
|
DeletionDate: DateTime<Utc>, |
|
|
|
Disabled: bool, |
|
|
|
HideEmail: Option<bool>, |
|
|
|
|
|
|
|
// Data field
|
|
|
|
pub Name: String, |
|
|
|
pub Notes: Option<String>, |
|
|
|
pub Text: Option<Value>, |
|
|
|
pub File: Option<Value>, |
|
|
|
Name: String, |
|
|
|
Notes: Option<String>, |
|
|
|
Text: Option<Value>, |
|
|
|
File: Option<Value>, |
|
|
|
} |
|
|
|
|
|
|
|
/// Enforces the `Disable Send` policy. A non-owner/admin user belonging to
|
|
|
@ -119,7 +119,10 @@ fn create_send(data: SendData, user_uuid: String) -> ApiResult<Send> { |
|
|
|
let mut send = Send::new(data.Type, data.Name, data_str, data.Key, data.DeletionDate.naive_utc()); |
|
|
|
send.user_uuid = Some(user_uuid); |
|
|
|
send.notes = data.Notes; |
|
|
|
send.max_access_count = data.MaxAccessCount; |
|
|
|
send.max_access_count = match data.MaxAccessCount { |
|
|
|
Some(m) => Some(m.into_i32()?), |
|
|
|
_ => None, |
|
|
|
}; |
|
|
|
send.expiration_date = data.ExpirationDate.map(|d| d.naive_utc()); |
|
|
|
send.disabled = data.Disabled; |
|
|
|
send.hide_email = data.HideEmail; |
|
|
@ -414,7 +417,10 @@ fn put_send(id: String, data: JsonUpcase<SendData>, headers: Headers, conn: DbCo |
|
|
|
send.akey = data.Key; |
|
|
|
send.deletion_date = data.DeletionDate.naive_utc(); |
|
|
|
send.notes = data.Notes; |
|
|
|
send.max_access_count = data.MaxAccessCount; |
|
|
|
send.max_access_count = match data.MaxAccessCount { |
|
|
|
Some(m) => Some(m.into_i32()?), |
|
|
|
_ => None, |
|
|
|
}; |
|
|
|
send.expiration_date = data.ExpirationDate.map(|d| d.naive_utc()); |
|
|
|
send.hide_email = data.HideEmail; |
|
|
|
send.disabled = data.Disabled; |
|
|
|