Avoid cloning generated id when submitting paste

This commit is contained in:
Jordan Johnson-Doyle 2019-02-21 11:51:36 +00:00
parent 26b21d7b39
commit c2219e15f4
No known key found for this signature in database
GPG key ID: A95F87B578CE79B6

View file

@ -55,8 +55,9 @@ struct IndexForm {
#[post("/", data = "<input>")] #[post("/", data = "<input>")]
fn submit(input: Form<IndexForm>) -> Redirect { fn submit(input: Form<IndexForm>) -> Redirect {
let id = generate_id(); let id = generate_id();
store_paste(id.clone(), input.into_inner().val); let uri = uri!(show_paste: &id);
Redirect::to(uri!(show_paste: id)) store_paste(id, input.into_inner().val);
Redirect::to(uri)
} }
#[put("/", data = "<input>")] #[put("/", data = "<input>")]
@ -65,11 +66,13 @@ fn submit_raw(input: Data, host: HostHeader) -> std::io::Result<String> {
input.open().take(1024 * 1000).read_to_string(&mut data)?; input.open().take(1024 * 1000).read_to_string(&mut data)?;
let id = generate_id(); let id = generate_id();
store_paste(id.clone(), data); let uri = uri!(show_paste: &id);
store_paste(id, data);
match *host { match *host {
Some(host) => Ok(format!("https://{}{}", host, uri!(show_paste: id))), Some(host) => Ok(format!("https://{}{}", host, uri)),
None => Ok(id), None => Ok(format!("{}", uri)),
} }
} }