From cf636077e65ae4c8598fd32aa9b233b87070875e Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sun, 8 Apr 2018 20:20:05 +0200 Subject: feat(handlers): Add reply_thread handler for posts --- src/handlers.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/handlers.rs') diff --git a/src/handlers.rs b/src/handlers.rs index cc4ac23c412d..a16f73389fad 100644 --- a/src/handlers.rs +++ b/src/handlers.rs @@ -83,9 +83,24 @@ pub fn submit_thread(state: State, input: Form) -> Converse .and_then(move |res| { let thread = res?; info!("Created new thread \"{}\" with ID {}", thread.title, thread.id); - Ok(HttpResponse::TemporaryRedirect() + Ok(HttpResponse::SeeOther() .header("Location", format!("/thread/{}", thread.id)) .finish()) }) .responder() } + +/// This handler receives a "Reply"-form and redirects the user to the +/// new post after creation. +pub fn reply_thread(state: State, input: Form) -> ConverseResponse { + state.db.send(CreatePost(input.0)) + .from_err() + .and_then(move |res| { + let post = res?; + info!("Posted reply {} to thread {}", post.id, post.thread_id); + Ok(HttpResponse::SeeOther() + .header("Location", format!("/thread/{}#post{}", post.thread_id, post.id)) + .finish()) + }) + .responder() +} -- cgit 1.4.1