@@ -15,12 +15,6 @@ pub enum Request {
1515 Query ( String ) ,
1616}
1717
18- pub enum Response {
19- Query ( QueryResult ) ,
20- }
21-
22- type Result < T > = std:: result:: Result < T , Error > ;
23-
2418#[ derive( Debug ) ]
2519pub struct Error {
2620 status : tonic:: Status ,
@@ -62,30 +56,45 @@ impl Rustbase {
6256 database : self . database . clone ( ) ,
6357 } ;
6458
65- let response = self . client . query ( query) . await . unwrap ( ) ;
66- let response = response. into_inner ( ) ;
59+ match self . client . query ( query. clone ( ) ) . await {
60+ Ok ( response) => {
61+ let response = response. into_inner ( ) ;
6762
68- match parse_i32_to_enum ( response. result_type ) {
69- QueryResultType :: Ok => {
70- if let Some ( result) = response. bson {
71- println ! ( "{}" , bson:: from_slice:: <bson:: Bson >( & result) . unwrap( ) ) ;
72- }
73- }
74- QueryResultType :: Error => {
75- println ! (
76- "{} {}" ,
77- "[Error]" . red( ) . bold( ) ,
78- response. error_message. unwrap( )
79- ) ;
80- }
81- QueryResultType :: NotFound => {
82- print ! ( "{} Not found: " , "[Error]" . red( ) . bold( ) ) ;
83- if let Some ( msg) = response. error_message {
84- println ! ( "{}" , msg) ;
63+ match parse_i32_to_enum ( response. result_type ) {
64+ QueryResultType :: Ok => {
65+ if let Some ( result) = response. bson {
66+ let doc = bson:: from_slice :: < bson:: Document > ( & result) . unwrap ( ) ;
67+
68+ if let Some ( value) = doc. get ( "_l" ) {
69+ println ! ( "{}" , value) ;
70+ } else {
71+ println ! ( "{}" , doc) ;
72+ }
73+ } else {
74+ println ! ( "{} OK" , "[Success]" . green( ) ) ;
75+ }
76+ }
77+ QueryResultType :: Error => {
78+ println ! (
79+ "{} {}" ,
80+ "[Error]" . red( ) . bold( ) ,
81+ response. error_message. unwrap( )
82+ ) ;
83+ }
84+ QueryResultType :: NotFound => {
85+ print ! ( "{} Not found: " , "[Error]" . red( ) . bold( ) ) ;
86+ if let Some ( msg) = response. error_message {
87+ println ! ( "{}" , msg) ;
88+ }
89+ }
90+ QueryResultType :: SyntaxError => {
91+ println ! ( "[Error] Syntax: \n {}" , response. error_message. unwrap( ) ) ;
92+ }
8593 }
8694 }
87- QueryResultType :: SyntaxError => {
88- println ! ( "[Error] Syntax: \n {}" , response. error_message. unwrap( ) ) ;
95+
96+ Err ( e) => {
97+ eprintln ! ( "Error: {}" , e) ;
8998 }
9099 }
91100 }
0 commit comments