2024-05-29 13:40:37 +02:00
|
|
|
use crate::backend::backend::build_api;
|
|
|
|
use neo4rs::Graph;
|
2024-05-24 13:09:17 +02:00
|
|
|
use rocket::Config;
|
|
|
|
use rocket_okapi::swagger_ui::{make_swagger_ui, SwaggerUIConfig};
|
|
|
|
|
|
|
|
mod backend;
|
2024-05-29 13:40:37 +02:00
|
|
|
mod graph;
|
2024-05-24 13:09:17 +02:00
|
|
|
|
|
|
|
fn main() {
|
2024-05-29 13:40:37 +02:00
|
|
|
let tokio = tokio::runtime::Runtime::new().expect("Failed to spawn tokio runtime");
|
2024-05-24 13:09:17 +02:00
|
|
|
|
2024-05-29 13:40:37 +02:00
|
|
|
tokio.block_on(async move {
|
2024-05-24 13:09:17 +02:00
|
|
|
let uri: String = "127.0.0.1:7687".to_string();
|
2024-05-29 13:40:37 +02:00
|
|
|
let user = "";
|
|
|
|
let pass = "";
|
|
|
|
// connect to neo4j database
|
2024-05-24 13:09:17 +02:00
|
|
|
let graph = Graph::new(uri, user, pass).await.unwrap();
|
|
|
|
|
2024-05-29 13:40:37 +02:00
|
|
|
// configure api port and interface
|
2024-05-24 13:09:17 +02:00
|
|
|
let config = Config {
|
|
|
|
address: "0.0.0.0".parse().unwrap(),
|
|
|
|
port: 8081,
|
|
|
|
..Default::default()
|
|
|
|
};
|
|
|
|
|
2024-05-29 13:40:37 +02:00
|
|
|
// configure api and swagger ui
|
2024-05-24 13:09:17 +02:00
|
|
|
let rock = rocket::custom(config)
|
|
|
|
.manage(graph)
|
|
|
|
.mount("/api/", build_api())
|
|
|
|
.mount(
|
|
|
|
"/docs/",
|
|
|
|
make_swagger_ui(&SwaggerUIConfig {
|
|
|
|
url: "../api/openapi.json".to_owned(),
|
|
|
|
..Default::default()
|
|
|
|
}),
|
|
|
|
);
|
|
|
|
|
|
|
|
let rock = rock.launch().await;
|
|
|
|
match rock {
|
|
|
|
Ok(_) => println!("Rocket shut down gracefully."),
|
|
|
|
Err(err) => println!("Rocket had an error: {}", err),
|
|
|
|
};
|
|
|
|
});
|
|
|
|
}
|