|
|
@ -13,6 +13,8 @@ use crate::{
|
|
|
|
CONFIG,
|
|
|
|
CONFIG,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const SEND_INACCESSIBLE_MSG: &str = "Send does not exist or is no longer available";
|
|
|
|
|
|
|
|
|
|
|
|
pub fn routes() -> Vec<rocket::Route> {
|
|
|
|
pub fn routes() -> Vec<rocket::Route> {
|
|
|
|
routes![
|
|
|
|
routes![
|
|
|
|
post_send,
|
|
|
|
post_send,
|
|
|
@ -228,27 +230,27 @@ pub struct SendAccessData {
|
|
|
|
fn post_access(access_id: String, data: JsonUpcase<SendAccessData>, conn: DbConn) -> JsonResult {
|
|
|
|
fn post_access(access_id: String, data: JsonUpcase<SendAccessData>, conn: DbConn) -> JsonResult {
|
|
|
|
let mut send = match Send::find_by_access_id(&access_id, &conn) {
|
|
|
|
let mut send = match Send::find_by_access_id(&access_id, &conn) {
|
|
|
|
Some(s) => s,
|
|
|
|
Some(s) => s,
|
|
|
|
None => err_code!("Send not found", 404),
|
|
|
|
None => err_code!(SEND_INACCESSIBLE_MSG, 404),
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
if let Some(max_access_count) = send.max_access_count {
|
|
|
|
if let Some(max_access_count) = send.max_access_count {
|
|
|
|
if send.access_count >= max_access_count {
|
|
|
|
if send.access_count >= max_access_count {
|
|
|
|
err_code!("Max access count reached", 404);
|
|
|
|
err_code!(SEND_INACCESSIBLE_MSG, 404);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if let Some(expiration) = send.expiration_date {
|
|
|
|
if let Some(expiration) = send.expiration_date {
|
|
|
|
if Utc::now().naive_utc() >= expiration {
|
|
|
|
if Utc::now().naive_utc() >= expiration {
|
|
|
|
err_code!("Send has expired", 404)
|
|
|
|
err_code!(SEND_INACCESSIBLE_MSG, 404)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if Utc::now().naive_utc() >= send.deletion_date {
|
|
|
|
if Utc::now().naive_utc() >= send.deletion_date {
|
|
|
|
err_code!("Send has been deleted", 404)
|
|
|
|
err_code!(SEND_INACCESSIBLE_MSG, 404)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if send.disabled {
|
|
|
|
if send.disabled {
|
|
|
|
err_code!("Send has been disabled", 404)
|
|
|
|
err_code!(SEND_INACCESSIBLE_MSG, 404)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if send.password_hash.is_some() {
|
|
|
|
if send.password_hash.is_some() {
|
|
|
@ -279,27 +281,27 @@ fn post_access_file(
|
|
|
|
) -> JsonResult {
|
|
|
|
) -> JsonResult {
|
|
|
|
let mut send = match Send::find_by_uuid(&send_id, &conn) {
|
|
|
|
let mut send = match Send::find_by_uuid(&send_id, &conn) {
|
|
|
|
Some(s) => s,
|
|
|
|
Some(s) => s,
|
|
|
|
None => err_code!("Send not found", 404),
|
|
|
|
None => err_code!(SEND_INACCESSIBLE_MSG, 404),
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
if let Some(max_access_count) = send.max_access_count {
|
|
|
|
if let Some(max_access_count) = send.max_access_count {
|
|
|
|
if send.access_count >= max_access_count {
|
|
|
|
if send.access_count >= max_access_count {
|
|
|
|
err_code!("Max access count reached", 404);
|
|
|
|
err_code!(SEND_INACCESSIBLE_MSG, 404)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if let Some(expiration) = send.expiration_date {
|
|
|
|
if let Some(expiration) = send.expiration_date {
|
|
|
|
if Utc::now().naive_utc() >= expiration {
|
|
|
|
if Utc::now().naive_utc() >= expiration {
|
|
|
|
err_code!("Send has expired", 404)
|
|
|
|
err_code!(SEND_INACCESSIBLE_MSG, 404)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if Utc::now().naive_utc() >= send.deletion_date {
|
|
|
|
if Utc::now().naive_utc() >= send.deletion_date {
|
|
|
|
err_code!("Send has been deleted", 404)
|
|
|
|
err_code!(SEND_INACCESSIBLE_MSG, 404)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if send.disabled {
|
|
|
|
if send.disabled {
|
|
|
|
err_code!("Send has been disabled", 404)
|
|
|
|
err_code!(SEND_INACCESSIBLE_MSG, 404)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if send.password_hash.is_some() {
|
|
|
|
if send.password_hash.is_some() {
|
|
|
|