@@ -33,7 +33,7 @@ use re_protos::{
33
33
missing_field,
34
34
} ;
35
35
36
- use crate :: StreamError ;
36
+ use crate :: { StreamEntryError , StreamError } ;
37
37
38
38
/// Expose an ergonomic API over the gRPC redap client.
39
39
///
81
81
. find_entries ( FindEntriesRequest {
82
82
filter : Some ( filter) ,
83
83
} )
84
- . await ?
84
+ . await
85
+ . map_err ( |err| StreamEntryError :: Find ( err. into ( ) ) ) ?
85
86
. into_inner ( )
86
87
. entries ;
87
88
97
98
. delete_entry ( DeleteEntryRequest {
98
99
id : Some ( entry_id. into ( ) ) ,
99
100
} )
100
- . await ?;
101
+ . await
102
+ . map_err ( |err| StreamEntryError :: Delete ( err. into ( ) ) ) ?;
101
103
102
104
Ok ( ( ) )
103
105
}
@@ -117,7 +119,8 @@ where
117
119
}
118
120
. into ( ) ,
119
121
) )
120
- . await ?
122
+ . await
123
+ . map_err ( |err| StreamEntryError :: Update ( err. into ( ) ) ) ?
121
124
. into_inner ( )
122
125
. try_into ( ) ?;
123
126
@@ -136,7 +139,8 @@ where
136
139
name : Some ( name) ,
137
140
id : entry_id. map ( Into :: into) ,
138
141
} )
139
- . await ?
142
+ . await
143
+ . map_err ( |err| StreamEntryError :: Create ( err. into ( ) ) ) ?
140
144
. into_inner ( )
141
145
. try_into ( ) ?;
142
146
@@ -151,9 +155,12 @@ where
151
155
let response: ReadDatasetEntryResponse = self
152
156
. inner ( )
153
157
. read_dataset_entry (
154
- tonic:: Request :: new ( ReadDatasetEntryRequest { } ) . with_entry_id ( entry_id) ?,
158
+ tonic:: Request :: new ( ReadDatasetEntryRequest { } )
159
+ . with_entry_id ( entry_id)
160
+ . map_err ( |err| StreamEntryError :: InvalidId ( err. into ( ) ) ) ?,
155
161
)
156
- . await ?
162
+ . await
163
+ . map_err ( |err| StreamEntryError :: Read ( err. into ( ) ) ) ?
157
164
. into_inner ( )
158
165
. try_into ( ) ?;
159
166
@@ -175,7 +182,8 @@ where
175
182
}
176
183
. into ( ) ,
177
184
) )
178
- . await ?
185
+ . await
186
+ . map_err ( |err| StreamEntryError :: Update ( err. into ( ) ) ) ?
179
187
. into_inner ( )
180
188
. try_into ( ) ?;
181
189
@@ -189,7 +197,8 @@ where
189
197
. read_table_entry ( ReadTableEntryRequest {
190
198
id : Some ( entry_id. into ( ) ) ,
191
199
} )
192
- . await ?
200
+ . await
201
+ . map_err ( |err| StreamEntryError :: Read ( err. into ( ) ) ) ?
193
202
. into_inner ( )
194
203
. try_into ( ) ?;
195
204
@@ -210,15 +219,20 @@ where
210
219
tonic:: Request :: new ( ScanPartitionTableRequest {
211
220
columns : vec ! [ COLUMN_NAME . to_owned( ) ] ,
212
221
} )
213
- . with_entry_id ( entry_id) ?,
222
+ . with_entry_id ( entry_id)
223
+ . map_err ( |err| StreamEntryError :: InvalidId ( err. into ( ) ) ) ?,
214
224
)
215
- . await ?
225
+ . await
226
+ . map_err ( |err| StreamEntryError :: ReadPartitions ( err. into ( ) ) ) ?
216
227
. into_inner ( ) ;
217
228
218
229
let mut partition_ids = Vec :: new ( ) ;
219
230
220
231
while let Some ( resp) = stream. next ( ) . await {
221
- let record_batch = resp?. data ( ) ?. decode ( ) ?;
232
+ let record_batch = resp
233
+ . map_err ( |err| StreamEntryError :: ReadPartitions ( err. into ( ) ) ) ?
234
+ . data ( ) ?
235
+ . decode ( ) ?;
222
236
223
237
let partition_id_col = record_batch
224
238
. column_by_name ( COLUMN_NAME )
@@ -252,12 +266,14 @@ where
252
266
data_sources,
253
267
on_duplicate,
254
268
} )
255
- . with_entry_id ( dataset_id) ?;
269
+ . with_entry_id ( dataset_id)
270
+ . map_err ( |err| StreamEntryError :: InvalidId ( err. into ( ) ) ) ?;
256
271
257
272
let response = self
258
273
. inner ( )
259
274
. register_with_dataset ( req. map ( Into :: into) )
260
- . await ?
275
+ . await
276
+ . map_err ( |err| StreamEntryError :: RegisterData ( err. into ( ) ) ) ?
261
277
. into_inner ( )
262
278
. data
263
279
. ok_or_else ( || missing_field ! ( RegisterWithDatasetResponse , "data" ) ) ?
@@ -346,7 +362,8 @@ where
346
362
let response: RegisterTableResponse = self
347
363
. inner ( )
348
364
. register_table ( tonic:: Request :: new ( request. into ( ) ) )
349
- . await ?
365
+ . await
366
+ . map_err ( |err| StreamEntryError :: RegisterTable ( err. into ( ) ) ) ?
350
367
. into_inner ( )
351
368
. try_into ( ) ?;
352
369
@@ -375,7 +392,8 @@ where
375
392
}
376
393
. into ( ) ,
377
394
) )
378
- . await ?;
395
+ . await
396
+ . map_err ( |err| StreamEntryError :: Maintenance ( err. into ( ) ) ) ?;
379
397
380
398
Ok ( ( ) )
381
399
}
@@ -385,7 +403,8 @@ where
385
403
. do_global_maintenance ( tonic:: Request :: new (
386
404
re_protos:: cloud:: v1alpha1:: DoGlobalMaintenanceRequest { } ,
387
405
) )
388
- . await ?;
406
+ . await
407
+ . map_err ( |err| StreamEntryError :: Maintenance ( err. into ( ) ) ) ?;
389
408
390
409
Ok ( ( ) )
391
410
}
0 commit comments