gato_lambda/
lambda_http_core.rs

1use serde_json::json;
2use std::collections::HashMap;
3use crate::lambda_driver::LambdaDriver;
4use gato_core::kernel::{HttpCore, RouterHandler, RequestBuilder};
5
6pub struct LambdaHttpCore { }
7
8impl HttpCore for LambdaHttpCore {
9
10    fn handle(&self) {
11        loop {
12            let driver = LambdaDriver::new();
13
14            // Get RouterHandler Driver
15            let router_handler = RouterHandler::get_driver();
16
17            let mut request = RequestBuilder::new();
18            request.add_headers(driver.get_headers());
19            request.add_body(driver.get_body());
20            request.add_method(driver.get_method());
21            request.add_uri(driver.get_uri());
22
23            let response = router_handler.handle(&mut request);
24            // Send to Lambda
25            let body = json!({
26                "statusCode": response.get_code(),
27                "body": response.get_body(),
28                "headers": response.get_headers()
29            });
30            driver.send(body.to_string());
31        }
32    }
33
34    fn get_request_headers(&self) -> HashMap<String, String> {
35        return HashMap::new();
36    }
37
38    fn get_post_data(&self) -> String {
39        return "".to_owned();
40    }
41}
42
43impl LambdaHttpCore {
44    pub fn new() -> Self {
45        return LambdaHttpCore { };
46    }
47}