gbserver/src/main.rs

79 lines
2.1 KiB
Rust
Raw Normal View History

2025-07-04 10:39:31 -03:00
use actix_cors::Cors;
use actix_web::http::header;
use actix_web::{web, App, HttpServer};
use dotenv::dotenv;
2025-07-04 23:20:48 -03:00
use services::script
::*;
use services::config::*;
use services::email::*;
use services::file::*;
use services::state::*;
2025-07-04 23:20:48 -03:00
use services::llm::*;
mod services;
#[actix_web::main]
async fn main() -> std::io::Result<()> {
dotenv().ok();
let config = AppConfig::from_env();
let script_service = ScriptService::new();
let script = r#"
let json = FIND "users", "name=John"
let x=2
let text = GET "example.com"
let nome = "table"
let d = FIND nome, "car=2"
"#;
match script_service.compile(script) {
Ok(ast) => {
match script_service.run(&ast) {
Ok(result) => println!("Script executed successfully: {:?}", result),
Err(e) => eprintln!("Error executing script: {}", e),
}
},
Err(e) => eprintln!("Error compiling script: {}", e),
}
2025-07-04 10:39:31 -03:00
let db_url = config.database_url();
//let db = PgPool::connect(&db_url).await.unwrap();
2025-07-04 10:39:31 -03:00
// let minio_client = init_minio(&config)
// .await
// .expect("Failed to initialize Minio");
let app_state = web::Data::new(AppState {
2025-07-04 10:39:31 -03:00
db: None,
config: Some(config.clone()),
2025-07-04 10:39:31 -03:00
minio_client: None,
});
2025-07-04 10:39:31 -03:00
// Start HTTP server
HttpServer::new(move || {
2025-07-04 10:39:31 -03:00
let cors = Cors::default()
.allowed_origin("http://localhost:3000") // Your Next.js port
.allowed_methods(vec!["GET", "POST", "PUT", "DELETE"])
.allowed_headers(vec![header::AUTHORIZATION, header::ACCEPT])
.allowed_header(header::CONTENT_TYPE)
.max_age(3600);
App::new()
2025-07-04 10:39:31 -03:00
.wrap(cors)
.app_data(app_state.clone())
.service(upload_file)
.service(list_file)
.service(save_click)
.service(get_emails)
2025-07-04 10:39:31 -03:00
.service(list_emails)
.service(send_email)
2025-07-04 23:20:48 -03:00
.service(chat_stream)
.service(chat)
})
.bind((config.server.host.clone(), config.server.port))?
.run()
.await
}