Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc8c14ca93 | ||
|
|
c41860509a |
4 changed files with 36 additions and 12 deletions
17
src/server/index.rs
Normal file
17
src/server/index.rs
Normal 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)
|
||||
}
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
pub mod api;
|
||||
pub mod index;
|
||||
pub mod server;
|
||||
pub mod short_link;
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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,7 +616,7 @@ 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 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()
|
||||
|
|
@ -620,6 +624,7 @@ impl OmikronConnection {
|
|||
.await;
|
||||
return self.send(&response).await;
|
||||
}
|
||||
}
|
||||
|
||||
// Try by user_id
|
||||
if let Some(user_id) = cv.get_data(DataTypes::user_id).as_number() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue