added get cmd to handle_mize_message function

- and _commit field, that automatically imcrements
This commit is contained in:
Sebastian Moser
2022-10-05 14:58:04 +02:00
parent e9d93442df
commit 0d81d6d4f6
3 changed files with 79 additions and 2 deletions

View File

@@ -1,7 +1,61 @@
use std::vec;
use crate::server::itemstore;
use crate::server::itemstore::encode;
async fn handle_mize_message(message: Vec<u8>){
const VERSION: u8 = 1;
async fn handle_mize_message(
message: Vec<u8>,
itemstore: itemstore::Itemstore,
) -> Option<Vec<u8>>{
let version = &message[0..1];
let cmd = &message[1..2];
// 1: get
// 2: give
// 3: get_val
// 4: give_val
// 5: unauthorized
// 6: sub
// 7: unsub
// 8: update_request
// 9: update_deny
// 10: update
// 11: delete
// 12: create
match cmd[0] {
1 => {
let id: u64 = u64::from_be_bytes(message[2..9].try_into().expect("slice with incorrect length"));
let id_bytes = id.to_be_bytes();
let mut answer: Vec<u8> = vec![VERSION, 2, id_bytes[0], id_bytes[1], id_bytes[2], id_bytes[3]];
let item = itemstore.get(id).await;
let mut temp: Vec<Vec<u8>> = Vec::new();
for field in item {
let encoded = encode(field.to_vec());
temp.push(encoded);
}
return Some(answer);
},
2 => {return None;},
3 => {return None;},
4 => {return None;},
5 => {return None;},
6 => {return None;},
7 => {return None;},
8 => {return None;},
9 => {return None;},
10 => {return None;},
11 => {return None;},
12 => {return None;},
_ => {return None;},
}
}