Skip to content

Commit 367cbf1

Browse files
authored
Merge pull request #2 from CoLearn-Dev/status-list
- maintain status lists of all tasks - bump version to 0.1.1
2 parents 24ed955 + d514e8a commit 367cbf1

File tree

3 files changed

+39
-11
lines changed

3 files changed

+39
-11
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "colink-server"
3-
version = "0.1.0"
3+
version = "0.1.1"
44
edition = "2021"
55

66
[dependencies]

src/service/task.rs

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -332,9 +332,13 @@ impl crate::server::MyService {
332332
Ok(Response::new(Empty::default()))
333333
}
334334

335-
async fn remove_task_old_status(&self, user_id: &str, task: &Task) -> Result<(), Status> {
336-
let list_key = format!("protocols:{}:{}", task.protocol_name, task.status);
337-
let list = self._internal_storage_read(user_id, &list_key).await?;
335+
async fn remove_task_from_list_in_storage(
336+
&self,
337+
user_id: &str,
338+
task: &Task,
339+
list_key: &str,
340+
) -> Result<(), Status> {
341+
let list = self._internal_storage_read(user_id, list_key).await?;
338342
let mut list: CoLinkInternalTaskIdList = Message::decode(&*list).unwrap();
339343
let mut index = list.task_ids_with_key_paths.len();
340344
for i in 0..list.task_ids_with_key_paths.len() {
@@ -349,14 +353,28 @@ impl crate::server::MyService {
349353
list.task_ids_with_key_paths.remove(index);
350354
let mut payload = vec![];
351355
list.encode(&mut payload).unwrap();
352-
self._internal_storage_update(user_id, &list_key, &payload)
356+
self._internal_storage_update(user_id, list_key, &payload)
353357
.await?;
354358
Ok(())
355359
}
356360

357-
async fn add_task_new_status(&self, user_id: &str, task: &Task) -> Result<(), Status> {
361+
async fn remove_task_old_status(&self, user_id: &str, task: &Task) -> Result<(), Status> {
358362
let list_key = format!("protocols:{}:{}", task.protocol_name, task.status);
359-
let latest_key = format!("protocols:{}:{}:latest", task.protocol_name, task.status);
363+
self.remove_task_from_list_in_storage(user_id, task, &list_key)
364+
.await?;
365+
let list_key = format!("tasks:status:{}", task.status);
366+
self.remove_task_from_list_in_storage(user_id, task, &list_key)
367+
.await?;
368+
Ok(())
369+
}
370+
371+
async fn add_task_to_list_in_storage(
372+
&self,
373+
user_id: &str,
374+
task: &Task,
375+
list_key: &str,
376+
) -> Result<(), Status> {
377+
let latest_key = format!("{}:latest", list_key);
360378
let mut payload = vec![];
361379
Task {
362380
task_id: task.task_id.clone(),
@@ -367,8 +385,8 @@ impl crate::server::MyService {
367385
let key_path = self
368386
._internal_storage_update(user_id, &latest_key, &payload)
369387
.await?;
370-
let mut list = if self._internal_storage_contains(user_id, &list_key).await? {
371-
let list = self._internal_storage_read(user_id, &list_key).await?;
388+
let mut list = if self._internal_storage_contains(user_id, list_key).await? {
389+
let list = self._internal_storage_read(user_id, list_key).await?;
372390
Message::decode(&*list).unwrap()
373391
} else {
374392
CoLinkInternalTaskIdList {
@@ -382,7 +400,17 @@ impl crate::server::MyService {
382400
});
383401
payload = vec![];
384402
list.encode(&mut payload).unwrap();
385-
self._internal_storage_update(user_id, &list_key, &payload)
403+
self._internal_storage_update(user_id, list_key, &payload)
404+
.await?;
405+
Ok(())
406+
}
407+
408+
async fn add_task_new_status(&self, user_id: &str, task: &Task) -> Result<(), Status> {
409+
let list_key = format!("protocols:{}:{}", task.protocol_name, task.status);
410+
self.add_task_to_list_in_storage(user_id, task, &list_key)
411+
.await?;
412+
let list_key = format!("tasks:status:{}", task.status);
413+
self.add_task_to_list_in_storage(user_id, task, &list_key)
386414
.await?;
387415
Ok(())
388416
}

0 commit comments

Comments
 (0)