Skip to content

Commit

Permalink
Move send_response helper to api module
Browse files Browse the repository at this point in the history
  • Loading branch information
prasmussen committed Nov 12, 2020
1 parent b5360b1 commit 0d3d331
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 26 deletions.
29 changes: 26 additions & 3 deletions src/docker_run/api/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ impl Server {
where
C: Send + Clone + 'static,
H: Send + Copy + 'static,
H: FnOnce(&C, tiny_http::Request) {
H: FnOnce(&C, &mut tiny_http::Request) -> Result<SuccessResponse, ErrorResponse> {

let mut handles = Vec::new();
let request_handler = config.handler;
Expand All @@ -47,8 +47,9 @@ impl Server {
loop {
match server.accept() {
Ok(client) => {
for request in client {
request_handler(&handler_config, request);
for mut request in client {
let response = request_handler(&handler_config, &mut request);
send_response(request, response);
}
}

Expand All @@ -72,6 +73,28 @@ impl Server {
}
}

fn send_response(request: tiny_http::Request, response: Result<SuccessResponse, ErrorResponse>) {
let result = match response {
Ok(data) => {
success_response(request, &data)
}

Err(data) => {
error_response(request, data)
}
};

match result {
Ok(()) => {},

Err(err) => {
log::error!("Failure while sending response: {}", err)
}
}
}



pub struct Workers {
handles: Vec<thread::JoinHandle<()>>
}
Expand Down
24 changes: 1 addition & 23 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,29 +88,7 @@ fn start() -> Result<(), Error> {
}


fn handle_request(config: &config::Config, mut request: tiny_http::Request) {

let result = match router(&config, &mut request) {
Ok(data) => {
api::success_response(request, &data)
}

Err(err) => {
api::error_response(request, err)
}
};

match result {
Ok(()) => {},

Err(err) => {
log::error!("Failure while sending response: {}", err)
}
}
}


fn router(config: &config::Config, request: &mut tiny_http::Request) -> Result<api::SuccessResponse, api::ErrorResponse> {
fn handle_request(config: &config::Config, request: &mut tiny_http::Request) -> Result<api::SuccessResponse, api::ErrorResponse> {
match (request.url(), request.method()) {
("/", tiny_http::Method::Get) => {
api::root::handle(config, request)
Expand Down

0 comments on commit 0d3d331

Please sign in to comment.