1- use std:: panic;
2-
31use api;
42use defs;
5- use grpc_server:: config;
63use grpc_server:: constants:: SIMILARITY_PROTOBUF_MAP ;
74use grpc_server:: interceptors;
5+ use grpc_server:: { config:: GRPCServerConfig , interceptors:: logging_interceptor} ;
6+ use std:: panic;
87use tonic:: { Request , Response , Status , service:: InterceptorLayer , transport:: Server } ;
98use tracing_subscriber;
109
@@ -66,7 +65,7 @@ impl VectorDb for VectorDBService {
6665
6766 let point = point_opt. unwrap ( ) ;
6867
69- // TODO: handle payload properly once defined
68+ // TODO: handle payload properly once we decide to define it
7069 Ok ( Response :: new ( Point {
7170 id : Some ( PointId { id : point. id } ) ,
7271 vector : Some ( DenseVector {
@@ -82,6 +81,8 @@ impl VectorDb for VectorDBService {
8281 ) -> Result < Response < SearchResponse > , Status > {
8382 let search_request = request. into_inner ( ) ;
8483
84+ //TODO: distance function panics if different dimensions; no dimension enforcement
85+
8586 // extract request arguments
8687 let query_vect = search_request. query_vector . unwrap ( ) ;
8788 let similarity = SIMILARITY_PROTOBUF_MAP [ search_request. similarity as usize ] ;
@@ -106,9 +107,10 @@ impl VectorDb for VectorDBService {
106107 async fn delete_point ( & self , request : Request < PointId > ) -> Result < Response < ( ) > , Status > {
107108 let point_id = request. into_inner ( ) . id ;
108109
109- if self . vector_db . delete ( point_id) . is_err ( ) {
110- return Err ( Status :: not_found ( "Point not found" ) ) ;
111- } ;
110+ // TODO: delete call needs to return a boolean indicating if point is present or not
111+ // if self.vector_db.delete(point_id)? {
112+ // return Err(Status::not_found("Point not found"));
113+ // };
112114
113115 Ok ( Response :: new ( ( ) ) )
114116 }
@@ -117,7 +119,7 @@ impl VectorDb for VectorDBService {
117119#[ tokio:: main]
118120async fn main ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
119121 tracing_subscriber:: fmt:: init ( ) ;
120- let config = config :: GRPCServerConfig :: load_config ( )
122+ let config = GRPCServerConfig :: load_config ( )
121123 . inspect_err ( |err| panic ! ( "Failed to load config: {}" , err) )
122124 . unwrap ( ) ;
123125
@@ -135,8 +137,11 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
135137 config. addr. to_string( )
136138 ) ;
137139
138- Server :: builder ( )
139- . layer ( InterceptorLayer :: new ( interceptors:: logging_interceptor) )
140+ let auth_interceptor = interceptors:: AuthInterceptor :: new ( config. root_password ) ;
141+
142+ let _ = Server :: builder ( )
143+ . layer ( InterceptorLayer :: new ( logging_interceptor) )
144+ . layer ( InterceptorLayer :: new ( auth_interceptor) )
140145 . add_service ( VectorDbServer :: new ( vector_db_service) )
141146 . serve ( config. addr )
142147 . await
0 commit comments