Compare commits

..
Author SHA1 Message Date
Alex Emmet
cc8c14ca93 [Fix] reverted some iota_id 2026-04-10 21:51:03 +02:00
Alex Emmet
c41860509a [Add] Omega Index route 2026-04-10 21:50:50 +02:00
4 changed files with 36 additions and 12 deletions

17
src/server/index.rs Normal file
View file

@ -0,0 +1,17 @@
use actix_web::{HttpResponse, Responder};
pub async fn index_handler() -> impl Responder {
let documentation = r#"
Omega API Server
Available Routes:
- /api/* : API endpoints for the Omega server.
- /direct/* : Resolution for shortened links.
All other routes will return this documentation.
"#;
HttpResponse::Ok()
.content_type("text/plain; charset=utf-8")
.body(documentation)
}

View file

@ -1,3 +1,4 @@
pub mod api;
pub mod index;
pub mod server;
pub mod short_link;

View file

@ -1,6 +1,6 @@
use crate::{
log,
server::{api, short_link::get_short_link},
server::{api, index::index_handler, short_link::get_short_link},
util::file_util::load_file_buf,
};
@ -37,6 +37,7 @@ pub async fn start(port: u16) -> anyhow::Result<()> {
App::new()
.route("/api/{path:.*}", web::to(api_handler))
.route("/direct/{path:.*}", web::to(direct_handler))
.default_service(web::to(index_handler))
})
.bind_rustls_0_23(addr, config)?
.run()

View file

@ -433,8 +433,10 @@ impl OmikronConnection {
async fn handle_iota_connected(self: Arc<Self>, cv: CommunicationValue, omikron_id: i64) {
log_in!(PrintType::Omega, "IOTA connected");
let iota_id = cv.get_sender();
let iota_id = iota_id as i64;
let iota_id = match cv.get_data(DataTypes::iota_id).as_number() {
Some(id) => id as i64,
None => return,
};
user_online_tracker::track_iota_connection(iota_id, omikron_id, true);
let mut user_ids = Vec::new();
@ -460,8 +462,10 @@ impl OmikronConnection {
async fn handle_iota_disconnected(self: Arc<Self>, cv: CommunicationValue, omikron_id: i64) {
log_in!(PrintType::Omega, "IOTA disconnected");
let iota_id = cv.get_sender();
let iota_id = iota_id as i64;
let iota_id = match cv.get_data(DataTypes::iota_id).as_number() {
Some(id) => id as i64,
None => return,
};
let iota_offline = user_online_tracker::untrack_iota_connection(iota_id, omikron_id);
if iota_offline {
if let Ok(users) = sql::get_users_by_iota_id(iota_id).await {
@ -612,13 +616,14 @@ impl OmikronConnection {
async fn handle_get_iota_data(self: Arc<Self>, cv: CommunicationValue) -> OmikronResult<()> {
// Try by iota_id
let iota_id = cv.get_sender();
if let Ok((iota_id, public_key)) = get_iota_by_id(iota_id as i64).await {
let response = self
.clone()
.build_iota_data_response(cv.get_id(), iota_id, public_key, None, None)
.await;
return self.send(&response).await;
if let Some(iota_id) = cv.get_data(DataTypes::iota_id).as_number() {
if let Ok((iota_id, public_key)) = get_iota_by_id(iota_id as i64).await {
let response = self
.clone()
.build_iota_data_response(cv.get_id(), iota_id, public_key, None, None)
.await;
return self.send(&response).await;
}
}
// Try by user_id