diff --git a/src/migration.rs b/src/migration.rs index 1287592..c03d5f0 100644 --- a/src/migration.rs +++ b/src/migration.rs @@ -1,4 +1,5 @@ use crate::models::paste; +use crate::models::paste::ExtraPasteParameters; use crate::schema::{implementation_wrappers, implementations, languages, pastes}; use crate::Connection; use diesel::prelude::*; @@ -71,10 +72,7 @@ pub fn run(connection: &Connection) -> Result<(), Box> { None, &languages_identifier, hello_world, - "".into(), - None, - None, - None, + ExtraPasteParameters::default(), ) .unwrap(); diesel::update(languages::table) diff --git a/src/models/paste.rs b/src/models/paste.rs index 5bc43d7..ffe3fa2 100644 --- a/src/models/paste.rs +++ b/src/models/paste.rs @@ -52,15 +52,25 @@ struct InsertPaste { exit_code: Option, } +#[derive(Default)] +pub struct ExtraPasteParameters { + pub stdin: String, + pub stdout: Option, + pub stderr: Option, + pub exit_code: Option, +} + pub fn insert( connection: &Connection, delete_at: Option>, language: &str, paste: String, - stdin: String, - stdout: Option, - stderr: Option, - exit_code: Option, + ExtraPasteParameters { + stdin, + stdout, + stderr, + exit_code, + }: ExtraPasteParameters, ) -> Result { let mut rng = rand::thread_rng(); let identifier: String = (0..10) diff --git a/src/routes/api_v1/pastes.rs b/src/routes/api_v1/pastes.rs index cba54c1..f35d362 100644 --- a/src/routes/api_v1/pastes.rs +++ b/src/routes/api_v1/pastes.rs @@ -1,4 +1,4 @@ -use crate::models::paste; +use crate::models::paste::{self, ExtraPasteParameters}; use crate::Connection; use chrono::{Duration, Utc}; use futures::Future; @@ -69,10 +69,12 @@ pub fn insert_paste( expiration.map(|expiration| Utc::now() + expiration.0), &language, code, - "".into(), - None, - None, - None, + ExtraPasteParameters { + stdin: "".into(), + stdout: None, + stderr: None, + exit_code: None, + }, ) }) .compat() diff --git a/src/routes/insert_paste.rs b/src/routes/insert_paste.rs index 8cd3195..932e5d3 100644 --- a/src/routes/insert_paste.rs +++ b/src/routes/insert_paste.rs @@ -1,4 +1,5 @@ use crate::models::paste; +use crate::models::paste::ExtraPasteParameters; use crate::Connection; use chrono::{Duration, Utc}; use futures::Future; @@ -41,10 +42,12 @@ pub fn insert_paste( delete_at, &language, code, - stdin, - stdout, - stderr, - status, + ExtraPasteParameters { + stdin, + stdout, + stderr, + exit_code: status, + }, )?; Ok(reply::with_header( StatusCode::SEE_OTHER,