aboutsummaryrefslogtreecommitdiff
path: root/karld/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'karld/src/main.rs')
-rw-r--r--karld/src/main.rs18
1 files changed, 12 insertions, 6 deletions
diff --git a/karld/src/main.rs b/karld/src/main.rs
index 1bc5798..0983554 100644
--- a/karld/src/main.rs
+++ b/karld/src/main.rs
@@ -5,7 +5,9 @@ use chrono::NaiveDateTime;
use condition::ConditionFind;
use crossbeam_channel::Sender;
use interface::network_loop;
-use karlcommon::{ClientboundPacket, Condition, Instance, Property, ServerboundPacket, Task};
+use karlcommon::{
+ ClientboundPacket, Condition, Instance, Property, ProtoError, ServerboundPacket, Task,
+};
use log::{debug, info};
use std::{collections::HashMap, sync::RwLock};
@@ -16,8 +18,8 @@ fn main() {
0,
Task {
id: 0,
- name: "blub".to_string(),
- description: "blob".to_string(),
+ name: "Mittagessen im Februar".to_string(),
+ description: None,
tags: vec![],
priority: 69.0,
completed: None,
@@ -46,6 +48,9 @@ lazy_static::lazy_static! {
pub fn handle_packet(client: u32, packet: ServerboundPacket, responder: Sender<ClientboundPacket>) {
match packet {
+ ServerboundPacket::Sync => {
+ let _ = responder.send(ClientboundPacket::Sync);
+ }
ServerboundPacket::ListTasks => {
let _ = responder.send(ClientboundPacket::TaskList(
TASKS.read().unwrap().values().map(|e| e.clone()).collect(),
@@ -55,7 +60,9 @@ pub fn handle_packet(client: u32, packet: ServerboundPacket, responder: Sender<C
TASKS.write().unwrap().insert(t.id, t);
}
ServerboundPacket::RemoveTask(i) => {
- TASKS.write().unwrap().remove(&i);
+ if TASKS.write().unwrap().remove(&i).is_none() {
+ let _ = responder.send(ClientboundPacket::Error(ProtoError::UnknownTask));
+ }
}
ServerboundPacket::Handshake { version } => {
debug!("{client}: version {version}");
@@ -64,8 +71,7 @@ pub fn handle_packet(client: u32, packet: ServerboundPacket, responder: Sender<C
let t = match TASKS.read().unwrap().get(&task).cloned() {
Some(t) => t,
None => {
- let _ =
- responder.send(ClientboundPacket::Error("task does not exist".to_string()));
+ let _ = responder.send(ClientboundPacket::Error(ProtoError::UnknownTask));
return;
}
};