Don't send attachments over API
This commit is contained in:
		| @@ -17,7 +17,9 @@ use crate::web::{ | ||||
|     consts::MIN_INTERVAL, | ||||
|     guards::transaction::Transaction, | ||||
|     routes::{ | ||||
|         dashboard::{create_database_channel, create_reminder, PatchReminder, Reminder}, | ||||
|         dashboard::{ | ||||
|             create_database_channel, create_reminder, CreateReminder, GetReminder, PatchReminder, | ||||
|         }, | ||||
|         JsonResult, | ||||
|     }, | ||||
|     Database, | ||||
| @@ -26,7 +28,7 @@ use crate::web::{ | ||||
| #[post("/api/guild/<id>/reminders", data = "<reminder>")] | ||||
| pub async fn create_guild_reminder( | ||||
|     id: u64, | ||||
|     reminder: Json<Reminder>, | ||||
|     reminder: Json<CreateReminder>, | ||||
|     cookies: &CookieJar<'_>, | ||||
|     ctx: &State<Context>, | ||||
|     mut transaction: Transaction<'_>, | ||||
| @@ -78,9 +80,9 @@ pub async fn get_reminders( | ||||
|                 .join(","); | ||||
|  | ||||
|             sqlx::query_as_unchecked!( | ||||
|                 Reminder, | ||||
|                 "SELECT | ||||
|                  reminders.attachment, | ||||
|                 GetReminder, | ||||
|                 " | ||||
|                 SELECT | ||||
|                  reminders.attachment_name, | ||||
|                  reminders.avatar, | ||||
|                  channels.channel, | ||||
| @@ -192,7 +194,7 @@ pub async fn edit_reminder( | ||||
|                 .await | ||||
|                 .map_err(|e| { | ||||
|                     warn!("Error updating reminder interval: {:?}", e); | ||||
|                     json!({ "reminder": Option::<Reminder>::None, "errors": vec!["Unknown error"] }) | ||||
|                     json!({ "reminder": Option::<GetReminder>::None, "errors": vec!["Unknown error"] }) | ||||
|                 })? | ||||
|                 .days | ||||
|                 .unwrap_or(0), | ||||
| @@ -206,7 +208,7 @@ pub async fn edit_reminder( | ||||
|                 .await | ||||
|                 .map_err(|e| { | ||||
|                     warn!("Error updating reminder interval: {:?}", e); | ||||
|                     json!({ "reminder": Option::<Reminder>::None, "errors": vec!["Unknown error"] }) | ||||
|                     json!({ "reminder": Option::<GetReminder>::None, "errors": vec!["Unknown error"] }) | ||||
|                 })? | ||||
|                 .months | ||||
|                 .unwrap_or(0), | ||||
| @@ -220,7 +222,7 @@ pub async fn edit_reminder( | ||||
|                 .await | ||||
|                 .map_err(|e| { | ||||
|                     warn!("Error updating reminder interval: {:?}", e); | ||||
|                     json!({ "reminder": Option::<Reminder>::None, "errors": vec!["Unknown error"] }) | ||||
|                     json!({ "reminder": Option::<GetReminder>::None, "errors": vec!["Unknown error"] }) | ||||
|                 })? | ||||
|                 .seconds | ||||
|                 .unwrap_or(0), | ||||
| @@ -249,7 +251,7 @@ pub async fn edit_reminder( | ||||
|         .await | ||||
|         .map_err(|e| { | ||||
|             warn!("Error updating reminder interval: {:?}", e); | ||||
|             json!({ "reminder": Option::<Reminder>::None, "errors": vec!["Unknown error"] }) | ||||
|             json!({ "reminder": Option::<GetReminder>::None, "errors": vec!["Unknown error"] }) | ||||
|         })?; | ||||
|     } | ||||
|  | ||||
| @@ -321,8 +323,9 @@ pub async fn edit_reminder( | ||||
|     } | ||||
|  | ||||
|     match sqlx::query_as_unchecked!( | ||||
|         Reminder, | ||||
|         "SELECT reminders.attachment, | ||||
|         GetReminder, | ||||
|         " | ||||
|         SELECT | ||||
|          reminders.attachment_name, | ||||
|          reminders.avatar, | ||||
|          channels.channel, | ||||
| @@ -361,7 +364,7 @@ pub async fn edit_reminder( | ||||
|         Err(e) => { | ||||
|             warn!("Error exiting `edit_reminder': {:?}", e); | ||||
|  | ||||
|             Err(json!({"reminder": Option::<Reminder>::None, "errors": vec!["Unknown error"]})) | ||||
|             Err(json!({"reminder": Option::<GetReminder>::None, "errors": vec!["Unknown error"]})) | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -19,8 +19,7 @@ use crate::web::{ | ||||
|     guards::transaction::Transaction, | ||||
|     routes::{ | ||||
|         dashboard::{ | ||||
|             create_reminder, generate_uid, ImportBody, Reminder, ReminderCsv, ReminderTemplateCsv, | ||||
|             TodoCsv, | ||||
|             create_reminder, CreateReminder, ImportBody, ReminderCsv, ReminderTemplateCsv, TodoCsv, | ||||
|         }, | ||||
|         JsonResult, | ||||
|     }, | ||||
| @@ -150,7 +149,7 @@ pub(crate) async fn import_reminders( | ||||
|  | ||||
|                         match channel_id.parse::<u64>() { | ||||
|                             Ok(channel_id) => { | ||||
|                                 let reminder = Reminder { | ||||
|                                 let reminder = CreateReminder { | ||||
|                                     attachment: record.attachment, | ||||
|                                     attachment_name: record.attachment_name, | ||||
|                                     avatar: record.avatar, | ||||
| @@ -177,7 +176,6 @@ pub(crate) async fn import_reminders( | ||||
|                                     name: record.name, | ||||
|                                     restartable: record.restartable, | ||||
|                                     tts: record.tts, | ||||
|                                     uid: generate_uid(), | ||||
|                                     username: record.username, | ||||
|                                     utc_time: record.utc_time, | ||||
|                                 }; | ||||
|   | ||||
| @@ -146,9 +146,39 @@ pub struct EmbedField { | ||||
|     inline: bool, | ||||
| } | ||||
|  | ||||
| #[derive(Serialize, Deserialize)] | ||||
| pub struct Reminder { | ||||
| #[derive(Deserialize)] | ||||
| pub struct CreateReminder { | ||||
|     attachment: Option<Attachment>, | ||||
|     attachment_name: Option<String>, | ||||
|     avatar: Option<String>, | ||||
|     #[serde(with = "string")] | ||||
|     channel: u64, | ||||
|     content: String, | ||||
|     embed_author: String, | ||||
|     embed_author_url: Option<String>, | ||||
|     embed_color: u32, | ||||
|     embed_description: String, | ||||
|     embed_footer: String, | ||||
|     embed_footer_url: Option<String>, | ||||
|     embed_image_url: Option<String>, | ||||
|     embed_thumbnail_url: Option<String>, | ||||
|     embed_title: String, | ||||
|     embed_fields: Option<Json<Vec<EmbedField>>>, | ||||
|     enabled: bool, | ||||
|     expires: Option<NaiveDateTime>, | ||||
|     interval_seconds: Option<u32>, | ||||
|     interval_days: Option<u32>, | ||||
|     interval_months: Option<u32>, | ||||
|     #[serde(default = "name_default")] | ||||
|     name: String, | ||||
|     restartable: bool, | ||||
|     tts: bool, | ||||
|     username: Option<String>, | ||||
|     utc_time: NaiveDateTime, | ||||
| } | ||||
|  | ||||
| #[derive(Serialize)] | ||||
| pub struct GetReminder { | ||||
|     attachment_name: Option<String>, | ||||
|     avatar: Option<String>, | ||||
|     #[serde(with = "string")] | ||||
| @@ -363,7 +393,7 @@ pub(crate) async fn create_reminder( | ||||
|     transaction: &mut Transaction<'_>, | ||||
|     guild_id: GuildId, | ||||
|     user_id: UserId, | ||||
|     reminder: Reminder, | ||||
|     reminder: CreateReminder, | ||||
| ) -> JsonResult { | ||||
|     // check guild in db | ||||
|     match sqlx::query!("SELECT 1 as A FROM guilds WHERE guild = ?", guild_id.get()) | ||||
| @@ -545,9 +575,9 @@ pub(crate) async fn create_reminder( | ||||
|     .await | ||||
|     { | ||||
|         Ok(_) => sqlx::query_as_unchecked!( | ||||
|             Reminder, | ||||
|             "SELECT | ||||
|              reminders.attachment, | ||||
|             GetReminder, | ||||
|             " | ||||
|             SELECT | ||||
|              reminders.attachment_name, | ||||
|              reminders.avatar, | ||||
|              channels.channel, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user