|
@@ -3,7 +3,12 @@
|
|
|
mod server_net;
|
|
|
use crate::server_net::listen;
|
|
|
|
|
|
+#[path = "../request_type.rs"]
|
|
|
+mod request_type;
|
|
|
+use crate::request_type::RequestType;
|
|
|
+
|
|
|
use lox::BridgeAuth;
|
|
|
+use lox::proto::*;
|
|
|
use std::env::args;
|
|
|
use std::fs::File;
|
|
|
use std::io::Write;
|
|
@@ -65,12 +70,50 @@ async fn main() {
|
|
|
.expect("Failed to write to lox_auth pubkeys file");
|
|
|
}
|
|
|
|
|
|
- let mut cmd_lambda = |cmd: Vec<u8>| perform_command(cmd, &lox_auth);
|
|
|
-
|
|
|
- listen(addr, &mut cmd_lambda).await;
|
|
|
+ listen(addr, &mut |request: Vec<u8>| handle_request(request, &mut lox_auth)).await;
|
|
|
}
|
|
|
|
|
|
-fn perform_command(cmd: Vec<u8>, lox_auth: &BridgeAuth) -> Vec<u8> {
|
|
|
- // just send something back for now
|
|
|
- "ACK".into()
|
|
|
+fn handle_request(request: Vec<u8>, lox_auth: &mut BridgeAuth) -> Vec<u8> {
|
|
|
+ match RequestType::try_from(request[0]).unwrap() {
|
|
|
+ RequestType::BlockageMigration => {
|
|
|
+ let decoded: blockage_migration::Request = bincode::deserialize(&request[1..]).unwrap();
|
|
|
+ let resp = lox_auth.handle_blockage_migration(decoded).unwrap();
|
|
|
+ bincode::serialize(&resp).unwrap()
|
|
|
+ },
|
|
|
+ RequestType::CheckBlockage => {
|
|
|
+ let decoded: check_blockage::Request = bincode::deserialize(&request[1..]).unwrap();
|
|
|
+ let resp = lox_auth.handle_check_blockage(decoded).unwrap();
|
|
|
+ bincode::serialize(&resp).unwrap()
|
|
|
+ },
|
|
|
+ RequestType::IssueInvite => {
|
|
|
+ let decoded: issue_invite::Request = bincode::deserialize(&request[1..]).unwrap();
|
|
|
+ let resp = lox_auth.handle_issue_invite(decoded).unwrap();
|
|
|
+ bincode::serialize(&resp).unwrap()
|
|
|
+ },
|
|
|
+ RequestType::LevelUp => {
|
|
|
+ let decoded: level_up::Request = bincode::deserialize(&request[1..]).unwrap();
|
|
|
+ let resp = lox_auth.handle_level_up(decoded).unwrap();
|
|
|
+ bincode::serialize(&resp).unwrap()
|
|
|
+ },
|
|
|
+ RequestType::Migration => {
|
|
|
+ let decoded: migration::Request = bincode::deserialize(&request[1..]).unwrap();
|
|
|
+ let resp = lox_auth.handle_migration(decoded).unwrap();
|
|
|
+ bincode::serialize(&resp).unwrap()
|
|
|
+ },
|
|
|
+ RequestType::OpenInvite => {
|
|
|
+ let decoded: open_invite::Request = bincode::deserialize(&request[1..]).unwrap();
|
|
|
+ let resp = lox_auth.handle_open_invite(decoded).unwrap();
|
|
|
+ bincode::serialize(&resp).unwrap()
|
|
|
+ },
|
|
|
+ RequestType::RedeemInvite => {
|
|
|
+ let decoded: redeem_invite::Request = bincode::deserialize(&request[1..]).unwrap();
|
|
|
+ let resp = lox_auth.handle_redeem_invite(decoded).unwrap();
|
|
|
+ bincode::serialize(&resp).unwrap()
|
|
|
+ },
|
|
|
+ RequestType::TrustPromotion => {
|
|
|
+ let decoded: trust_promotion::Request = bincode::deserialize(&request[1..]).unwrap();
|
|
|
+ let resp = lox_auth.handle_trust_promotion(decoded).unwrap();
|
|
|
+ bincode::serialize(&resp).unwrap()
|
|
|
+ },
|
|
|
+ }
|
|
|
}
|