@@ -15,7 +15,9 @@ use rand::Rng;
15
15
use regex:: Regex ;
16
16
use serde:: Serialize ;
17
17
use serde:: { self , Deserialize } ;
18
+ use serde_json:: json;
18
19
use std:: collections:: HashSet ;
20
+ use std:: string;
19
21
use std:: {
20
22
collections:: HashMap ,
21
23
convert:: Infallible ,
@@ -246,7 +248,7 @@ fn uri_to_spec(uri: &Uri) -> Result<ResourceSpec, SpecParseError> {
246
248
pub enum TaskStatus {
247
249
Pending ( f32 ) ,
248
250
Error ( String ) ,
249
- Completed ,
251
+ Completed ( usize ) ,
250
252
}
251
253
252
254
#[ derive( Clone , Debug , Serialize ) ]
@@ -474,8 +476,10 @@ impl Service {
474
476
. await
475
477
{
476
478
Ok ( ( id, hnsw) ) => {
479
+ let layer_len = hnsw. layer_len ( 0 ) ;
477
480
self . set_index ( id, hnsw. into ( ) ) . await ;
478
- self . set_task_status ( task_id, TaskStatus :: Completed ) . await ;
481
+ self . set_task_status ( task_id, TaskStatus :: Completed ( layer_len. clone ( ) ) )
482
+ . await ;
479
483
self . clear_pending ( & index_id) . await ;
480
484
}
481
485
Err ( err) => {
@@ -601,14 +605,16 @@ impl Service {
601
605
if let Some ( state) = self . get_task_status ( & task_id) . await {
602
606
match state {
603
607
TaskStatus :: Pending ( f) => {
604
- Ok ( Response :: builder ( ) . body ( format ! ( "{}" , f) . into ( ) ) . unwrap ( ) )
608
+ let obj = json ! ( { "status" : "Pending" , "percentage" : f} ) ;
609
+ Ok ( Response :: builder ( ) . body ( obj. to_string ( ) . into ( ) ) . unwrap ( ) )
605
610
}
606
611
TaskStatus :: Error ( msg) => Ok ( Response :: builder ( )
607
612
. status ( StatusCode :: INTERNAL_SERVER_ERROR )
608
613
. body ( format ! ( "{:?}" , msg) . into ( ) )
609
614
. unwrap ( ) ) ,
610
- TaskStatus :: Completed => {
611
- Ok ( Response :: builder ( ) . body ( format ! ( "{}" , 1.0 ) . into ( ) ) . unwrap ( ) )
615
+ TaskStatus :: Completed ( u) => {
616
+ let obj = json ! ( { "status" : "Complete" , "indexed_documents" : u} ) ;
617
+ Ok ( Response :: builder ( ) . body ( obj. to_string ( ) . into ( ) ) . unwrap ( ) )
612
618
}
613
619
}
614
620
} else {
0 commit comments