improv: #5 handle the request and return a response (useful for tests)
This commit is contained in:
		
							parent
							
								
									0a76efdc64
								
							
						
					
					
						commit
						617c084782
					
				| @ -122,7 +122,7 @@ impl HTTPStartLine { | |||||||
|         HTTP_VERSION_REGEX.is_match(version) |         HTTP_VERSION_REGEX.is_match(version) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     fn is_valid(&self) -> bool { |     pub fn is_valid(&self) -> bool { | ||||||
|         return self.method != "" && self.target != ""; |         return self.method != "" && self.target != ""; | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @ -234,7 +234,7 @@ impl HTTPRequest { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     fn is_valid(&self) -> bool { |     pub fn is_valid(&self) -> bool { | ||||||
|         return self.start_line.is_valid(); |         return self.start_line.is_valid(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								src/main.rs
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								src/main.rs
									
									
									
									
									
								
							| @ -25,14 +25,23 @@ async fn handle_connection(mut stream: TcpStream) { | |||||||
|     let mut buffer: [u8; 1024] = [0; 1024]; |     let mut buffer: [u8; 1024] = [0; 1024]; | ||||||
|     let n = stream.read(&mut buffer).await.unwrap(); |     let n = stream.read(&mut buffer).await.unwrap(); | ||||||
| 
 | 
 | ||||||
|     println!("buffer : {:?}", std::str::from_utf8(&buffer[0..n])); |     let request_string = std::str::from_utf8(&buffer[0..n]).unwrap(); | ||||||
|  |     let request = handle_request(request_string); | ||||||
| 
 | 
 | ||||||
|     let contents = "{\"balance\": 0.00}"; |     if request.is_valid() { | ||||||
|  |         let contents = "{\"status\": \"ok\"}"; | ||||||
|         let response = format!( |         let response = format!( | ||||||
|             "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\nContent-Length: {}\r\n\r\n{}", |             "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\nContent-Length: {}\r\n\r\n{}", | ||||||
|             contents.len(), |             contents.len(), | ||||||
|             contents |             contents | ||||||
|         ); |         ); | ||||||
|  | 
 | ||||||
|  |         stream.write(response.as_bytes()).await.unwrap(); | ||||||
|  |         stream.flush().await.unwrap(); | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     let response = "HTTP/1.1 400 OK\r\n\r\n".to_string(); | ||||||
|     stream.write(response.as_bytes()).await.unwrap(); |     stream.write(response.as_bytes()).await.unwrap(); | ||||||
|     stream.flush().await.unwrap(); |     stream.flush().await.unwrap(); | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user