@@ -332,9 +332,13 @@ impl crate::server::MyService {
332
332
Ok ( Response :: new ( Empty :: default ( ) ) )
333
333
}
334
334
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 ?;
338
342
let mut list: CoLinkInternalTaskIdList = Message :: decode ( & * list) . unwrap ( ) ;
339
343
let mut index = list. task_ids_with_key_paths . len ( ) ;
340
344
for i in 0 ..list. task_ids_with_key_paths . len ( ) {
@@ -349,14 +353,28 @@ impl crate::server::MyService {
349
353
list. task_ids_with_key_paths . remove ( index) ;
350
354
let mut payload = vec ! [ ] ;
351
355
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)
353
357
. await ?;
354
358
Ok ( ( ) )
355
359
}
356
360
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 > {
358
362
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) ;
360
378
let mut payload = vec ! [ ] ;
361
379
Task {
362
380
task_id : task. task_id . clone ( ) ,
@@ -367,8 +385,8 @@ impl crate::server::MyService {
367
385
let key_path = self
368
386
. _internal_storage_update ( user_id, & latest_key, & payload)
369
387
. 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 ?;
372
390
Message :: decode ( & * list) . unwrap ( )
373
391
} else {
374
392
CoLinkInternalTaskIdList {
@@ -382,7 +400,17 @@ impl crate::server::MyService {
382
400
} ) ;
383
401
payload = vec ! [ ] ;
384
402
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)
386
414
. await ?;
387
415
Ok ( ( ) )
388
416
}
0 commit comments