55mod private
66{
77 use crate :: * ;
8+ use actions:: gspread::
9+ {
10+ Error ,
11+ Result
12+ } ;
813 use google_sheets4:: api::
914 {
1015 BatchUpdateValuesRequest ,
@@ -29,11 +34,11 @@ mod private
2934 fn parse_json
3035 (
3136 json_str : & str
32- ) -> Result < ParsedJson , String >
37+ ) -> Result < ParsedJson >
3338 {
3439 serde_json:: from_str :: < ParsedJson > ( json_str ) . map_err
3540 (
36- | err | format ! ( "Failed to parse JSON: {}" , err )
41+ | error | Error :: InvalidJSON ( format ! ( "Failed to parse JSON: {}" , error ) )
3742 )
3843 }
3944
@@ -42,7 +47,7 @@ mod private
4247 fn check_select_row_by_key
4348 (
4449 key : & str
45- ) -> Result < ( ) , String >
50+ ) -> Result < ( ) >
4651 {
4752 let keys = vec ! [ "id" ] ;
4853 if keys. contains ( & key )
@@ -51,22 +56,28 @@ mod private
5156 }
5257 else
5358 {
54- Err ( format ! ( "Invalid select_row_by_key: '{}'. Allowed keys: {:?}" , key, keys ) )
59+ Err
60+ (
61+ Error :: ParseError ( format ! ( "Invalid select_row_by_key: '{}'. Allowed keys: {:?}" , key, keys ) )
62+ )
5563 }
5664 }
5765
5866 fn is_all_uppercase_letters
5967 (
6068 s : & str
61- ) -> Result < ( ) , String >
69+ ) -> Result < ( ) >
6270 {
6371 if s. chars ( ) . all ( | c | c. is_ascii_uppercase ( ) )
6472 {
6573 Ok ( ( ) )
6674 }
6775 else
6876 {
69- Err ( format ! ( "The string '{}' contains invalid characters. Only uppercase letters (A-Z) are allowed." , s ) )
77+ Err
78+ (
79+ Error :: ParseError ( format ! ( "The string '{}' contains invalid characters. Only uppercase letters (A-Z) are allowed." , s ) )
80+ )
7081 }
7182 }
7283
@@ -77,7 +88,7 @@ mod private
7788 json_str : & str ,
7889 spreadsheet_id : & str ,
7990 table_name : & str
80- ) -> Result < String , String >
91+ ) -> Result < String >
8192 {
8293 check_select_row_by_key ( select_row_by_key ) ?;
8394
@@ -86,7 +97,8 @@ mod private
8697 let row_id = pairs
8798 . columns
8899 . remove ( select_row_by_key )
89- . ok_or_else ( || format ! ( "Key '{}' not found in JSON" , select_row_by_key ) ) ?;
100+ . ok_or_else ( || Error :: ParseError ( format ! ( "Key '{}' not found in JSON" , select_row_by_key ) ) ) ?;
101+
90102
91103 let mut value_ranges= Vec :: new ( ) ;
92104
@@ -112,18 +124,17 @@ mod private
112124 ..Default :: default ( )
113125 } ;
114126
115- let result = hub
127+ match hub
116128 . spreadsheets ( )
117129 . values_batch_update ( req, spreadsheet_id )
118130 . doit ( )
119- . await ;
120-
121- match result
131+ . await
122132 {
123133 Ok ( _ ) => Ok ( format ! ( "Cells were sucsessfully updated!" ) ) ,
124- Err ( error ) => Err ( format ! ( "{}" , error ) )
134+ Err ( error ) => Err ( Error :: ApiError ( error ) )
125135 }
126136 }
137+
127138}
128139
129140crate :: mod_interface!
0 commit comments