72 lines
2.2 KiB
Rust
72 lines
2.2 KiB
Rust
mod util;
|
|
mod endpoints;
|
|
mod models;
|
|
|
|
use rocket::{routes};
|
|
use util::constants;
|
|
use util::debug;
|
|
|
|
|
|
pub fn connect() -> redis::RedisResult<()> {
|
|
let client = redis::Client::open("redis://127.0.0.1:7878/")?;
|
|
let mut connector = client.get_connection()?;
|
|
// let mut connector = client.get_connection();
|
|
// connector.set("Name", "Redis");
|
|
// println!("DB name:: {}", connector.get("Name"));
|
|
|
|
match client.get_connection() {
|
|
Ok(mut connector) => {
|
|
util::colored_text::print_colored_text_info("[DB] Connected ");
|
|
|
|
Ok(())
|
|
},
|
|
Err(e) => {
|
|
util::colored_text::print_colored_text_err("[DB] Error, check redis database is running? (./Database/run.sh) Fix REDIS_PORT if not correctly setted;\n[Wiki] Instructions: https://git.sociocyber.site:5000/SocioCybereeng/Hydroponic_systems/src/branch/master/ResourceHub/Readme.md ", e.to_string());
|
|
Err(e)
|
|
}
|
|
}
|
|
}
|
|
|
|
#[rocket::main]
|
|
async fn main() -> Result<(), rocket::Error> {
|
|
util::colored_text::print_colored_text_brand("> SocioCybereeng ");
|
|
util::colored_text::print_colored_text_project("> Project: Hydroponic Systems ");
|
|
util::colored_text::print_colored_text_info("- [Welcome to ResourceHUB API] ");
|
|
|
|
if util::constants::IS_DEBUG == true {
|
|
debug::print_debug_info();
|
|
}
|
|
|
|
|
|
// let DBconnector = ;
|
|
|
|
// Attempt to connect to DB and check the result
|
|
let conection = connect();
|
|
match conection {
|
|
// match DBconnector::connect() {
|
|
|
|
Ok(conection) => {
|
|
// If the connection is successful, store it or use it as needed
|
|
let mut _db = conection;
|
|
|
|
|
|
// Start server
|
|
let _rocket = rocket::build()
|
|
.mount(format!("/api/v{}/", constants::API_VERSION), routes![
|
|
endpoints::sensors::data::create,
|
|
endpoints::sensors::data::get,
|
|
endpoints::sensors::data::get_by_id,
|
|
])
|
|
.launch()
|
|
.await?;
|
|
|
|
Ok(())
|
|
},
|
|
Err(err) => {
|
|
// Handle connection error and stop execution
|
|
std::process::exit(1);
|
|
}
|
|
}
|
|
|
|
}
|