@@ -400,7 +400,7 @@ impl AsRef<u32> for Task {
400
400
}
401
401
402
402
#[ derive( Debug , Serialize , Clone ) ]
403
- pub struct TasksPagination {
403
+ pub struct TasksPaginationFilters {
404
404
// Maximum number of tasks to return
405
405
#[ serde( skip_serializing_if = "Option::is_none" ) ]
406
406
limit : Option < u32 > ,
@@ -410,10 +410,10 @@ pub struct TasksPagination {
410
410
}
411
411
412
412
#[ derive( Debug , Serialize , Clone ) ]
413
- pub struct TasksDefault { }
413
+ pub struct TasksCancelFilters { }
414
414
415
- pub type TasksSearchQuery < ' a > = TasksQuery < ' a , TasksPagination > ;
416
- pub type TasksCancelQuery < ' a > = TasksQuery < ' a , TasksDefault > ;
415
+ pub type TasksSearchQuery < ' a > = TasksQuery < ' a , TasksPaginationFilters > ;
416
+ pub type TasksCancelQuery < ' a > = TasksQuery < ' a , TasksCancelFilters > ;
417
417
418
418
#[ derive( Debug , Serialize , Clone ) ]
419
419
#[ serde( rename_all = "camelCase" ) ]
@@ -547,8 +547,8 @@ impl<'a, T> TasksQuery<'a, T> {
547
547
}
548
548
}
549
549
550
- impl < ' a > TasksQuery < ' a , TasksDefault > {
551
- pub fn new ( client : & ' a Client ) -> TasksQuery < ' a , TasksDefault > {
550
+ impl < ' a > TasksQuery < ' a , TasksCancelFilters > {
551
+ pub fn new ( client : & ' a Client ) -> TasksQuery < ' a , TasksCancelFilters > {
552
552
TasksQuery {
553
553
client,
554
554
index_uids : None ,
@@ -561,17 +561,17 @@ impl<'a> TasksQuery<'a, TasksDefault> {
561
561
after_started_at : None ,
562
562
before_finished_at : None ,
563
563
after_finished_at : None ,
564
- pagination : TasksDefault { } ,
564
+ pagination : TasksCancelFilters { } ,
565
565
}
566
566
}
567
567
568
- // pub async fn execute(&'a self) -> Result<TasksResults, Error> {
569
- // self.client.get_tasks_with (self).await
570
- // }
568
+ pub async fn execute ( & ' a self ) -> Result < TasksResults , Error > {
569
+ self . client . cancel_tasks_with ( self ) . await
570
+ }
571
571
}
572
572
573
- impl < ' a > TasksQuery < ' a , TasksPagination > {
574
- pub fn new ( client : & ' a Client ) -> TasksQuery < ' a , TasksPagination > {
573
+ impl < ' a > TasksQuery < ' a , TasksPaginationFilters > {
574
+ pub fn new ( client : & ' a Client ) -> TasksQuery < ' a , TasksPaginationFilters > {
575
575
TasksQuery {
576
576
client,
577
577
index_uids : None ,
@@ -584,17 +584,23 @@ impl<'a> TasksQuery<'a, TasksPagination> {
584
584
after_started_at : None ,
585
585
before_finished_at : None ,
586
586
after_finished_at : None ,
587
- pagination : TasksPagination {
587
+ pagination : TasksPaginationFilters {
588
588
limit : None ,
589
589
from : None ,
590
590
} ,
591
591
}
592
592
}
593
- pub fn with_limit < ' b > ( & ' b mut self , limit : u32 ) -> & ' b mut TasksQuery < ' a , TasksPagination > {
593
+ pub fn with_limit < ' b > (
594
+ & ' b mut self ,
595
+ limit : u32 ,
596
+ ) -> & ' b mut TasksQuery < ' a , TasksPaginationFilters > {
594
597
self . pagination . limit = Some ( limit) ;
595
598
self
596
599
}
597
- pub fn with_from < ' b > ( & ' b mut self , from : u32 ) -> & ' b mut TasksQuery < ' a , TasksPagination > {
600
+ pub fn with_from < ' b > (
601
+ & ' b mut self ,
602
+ from : u32 ,
603
+ ) -> & ' b mut TasksQuery < ' a , TasksPaginationFilters > {
598
604
self . pagination . from = Some ( from) ;
599
605
self
600
606
}
@@ -873,7 +879,6 @@ mod test {
873
879
. execute ( )
874
880
. await ;
875
881
876
- // let _ = client.get_tasks(&query).await;
877
882
mock_res. assert ( ) ;
878
883
Ok ( ( ) )
879
884
}
@@ -912,4 +917,48 @@ mod test {
912
917
assert_eq ! ( error. error_type, ErrorType :: InvalidRequest ) ;
913
918
Ok ( ( ) )
914
919
}
920
+
921
+ #[ meilisearch_test]
922
+ async fn test_cancel_tasks_with_params ( ) -> Result < ( ) , Error > {
923
+ let mock_server_url = & mockito:: server_url ( ) ;
924
+ let client = Client :: new ( mock_server_url, "masterKey" ) ;
925
+ let path =
926
+ "/tasks/cancel?indexUids=movies,test&statuses=equeued&types=documentDeletion&uids=1" ;
927
+
928
+ let mock_res = mock ( "GET" , path) . with_status ( 200 ) . create ( ) ;
929
+
930
+ let mut query = TasksCancelQuery :: new ( & client) ;
931
+ query
932
+ . with_index_uids ( [ "movies" , "test" ] )
933
+ . with_statuses ( [ "equeued" ] )
934
+ . with_types ( [ "documentDeletion" ] )
935
+ . with_uids ( [ & 1 ] ) ;
936
+
937
+ let _ = client. cancel_tasks_with ( & query) . await ;
938
+
939
+ mock_res. assert ( ) ;
940
+ Ok ( ( ) )
941
+ }
942
+
943
+ #[ meilisearch_test]
944
+ async fn test_cancel_tasks_with_params_execute ( ) -> Result < ( ) , Error > {
945
+ let mock_server_url = & mockito:: server_url ( ) ;
946
+ let client = Client :: new ( mock_server_url, "masterKey" ) ;
947
+ let path =
948
+ "/tasks/cancel?indexUids=movies,test&statuses=equeued&types=documentDeletion&uids=1" ;
949
+
950
+ let mock_res = mock ( "GET" , path) . with_status ( 200 ) . create ( ) ;
951
+
952
+ let mut query = TasksCancelQuery :: new ( & client) ;
953
+ let _ = query
954
+ . with_index_uids ( [ "movies" , "test" ] )
955
+ . with_statuses ( [ "equeued" ] )
956
+ . with_types ( [ "documentDeletion" ] )
957
+ . with_uids ( [ & 1 ] )
958
+ . execute ( )
959
+ . await ;
960
+
961
+ mock_res. assert ( ) ;
962
+ Ok ( ( ) )
963
+ }
915
964
}
0 commit comments