From e4ce4cfc37ff17b6e096210030c58b51731b7dc1 Mon Sep 17 00:00:00 2001 From: Sebastian Moser Date: Tue, 1 Nov 2022 23:26:12 +0100 Subject: [PATCH] handling a create message now uses the Message Struct --- first-render | 2 +- js-client | 2 +- src/server.rs | 1 + src/server/itemstore.rs | 3 +-- src/server/proto.rs | 22 +++++++--------------- 5 files changed, 11 insertions(+), 19 deletions(-) diff --git a/first-render b/first-render index face431..51815cb 160000 --- a/first-render +++ b/first-render @@ -1 +1 @@ -Subproject commit face43116ddb3eb3d6ad09ab84c3195acb576690 +Subproject commit 51815cb28972b8fb0f905fa6442a13eb8e4ae639 diff --git a/js-client b/js-client index f649c13..c12d6a2 160000 --- a/js-client +++ b/js-client @@ -1 +1 @@ -Subproject commit f649c1314ab5eaf60ee1b2a74228819ca830daec +Subproject commit c12d6a2a4e7619f4d4db71353b83e810dafb9249 diff --git a/src/server.rs b/src/server.rs index ab934fa..5e08da4 100644 --- a/src/server.rs +++ b/src/server.rs @@ -184,6 +184,7 @@ async fn handle_socket_connection( // Reading and broadcasting messages while let Some(result) = socket_rx.next().await { + println!("got message =================================="); let msg = result.expect("Error when gettin message from WebSocket"); let itemstore = &*itemstore_clone.lock().await; diff --git a/src/server/itemstore.rs b/src/server/itemstore.rs index c0f55b8..389ee98 100644 --- a/src/server/itemstore.rs +++ b/src/server/itemstore.rs @@ -99,8 +99,7 @@ impl Itemstore { } //increment commit number - let mut commit_key = id.to_be_bytes().to_vec(); - commit_key.extend(":_commit".to_string().into_bytes()); + let mut commit_key = format!("{}:_commit", id).into_bytes(); let mut commit_num: u64 = match tr.get(&*commit_key).await { Ok(Some(val)) => u64::from_be_bytes(val.try_into().expect("error converting _commit num to u64")), diff --git a/src/server/proto.rs b/src/server/proto.rs index 9bf1f52..0a5629b 100644 --- a/src/server/proto.rs +++ b/src/server/proto.rs @@ -5,8 +5,6 @@ use std::vec; use crate::server::itemstore; use crate::server::itemstore::encode; -use super::itemstore::Itemstore; - pub enum Response { One(Vec), All(Vec), @@ -176,7 +174,7 @@ pub async fn handle_mize_message( let num_of_updates = message.get_u32(); - for i in 1..num_of_updates as usize { + for i in 0..num_of_updates as usize { let key_len = message.get_u32(); let key = message.get_bytes(key_len as usize); //println!("KEY: {}", String::from_utf8(key.clone()).expect("here utf-8")); @@ -223,24 +221,18 @@ pub async fn handle_mize_message( //create 12 => { - let tmp = &old_message[2..6]; - let num_of_fields: u32 = u32::from_be_bytes([tmp[0], tmp[1], tmp[2], tmp[3]]); + let num_of_fields = message.get_u32(); let mut item: Vec<[Vec; 2]> = Vec::new(); let mut index = 6; + for i in 0..num_of_fields { - let mut tmp = &old_message[index..index + 4]; - let key_len = u32::from_be_bytes([tmp[0], tmp[1], tmp[2], tmp[3]]); - let key = old_message[index + 4..(index + 4 + key_len as usize)].to_vec(); + let key_len = message.get_u32(); + let key = message.get_bytes(key_len as usize); - index += 4 + key_len as usize; - - tmp = &old_message[index..index + 4]; - let val_len = u32::from_be_bytes([tmp[0], tmp[1], tmp[2], tmp[3]]); - let val = old_message[index + 4..(index + 4 + val_len as usize)].to_vec(); + let val_len = message.get_u32(); + let val = message.get_bytes(val_len as usize); - index += 4 + val_len as usize; - item.push([key, val]); }