File tree 2 files changed +40
-32
lines changed
2 files changed +40
-32
lines changed Original file line number Diff line number Diff line change @@ -171,19 +171,22 @@ pub async fn run_index(args: IndexArgs, pool: PgPool) -> Result<()> {
171
171
let mut json_obj: serde_json:: Map < String , serde_json:: Value > = serde_json:: from_str ( & line) ?;
172
172
173
173
for ( name, field, parse_fn) in & field_parsers {
174
- if let Some ( json_value) = json_obj. remove ( name) {
175
- match parse_fn ( json_value) {
176
- Ok ( ParsedValue :: Single ( value) ) => {
174
+ let Some ( json_value) = json_obj. remove ( name) else {
175
+ debug ! ( "field '{}' in schema but not found" , & name) ;
176
+ continue ;
177
+ } ;
178
+
179
+ match parse_fn ( json_value) {
180
+ Ok ( ParsedValue :: Single ( value) ) => {
181
+ doc. add_field_value ( * field, value) ;
182
+ }
183
+ Ok ( ParsedValue :: Multiple ( values) ) => {
184
+ for value in values {
177
185
doc. add_field_value ( * field, value) ;
178
186
}
179
- Ok ( ParsedValue :: Multiple ( values) ) => {
180
- for value in values {
181
- doc. add_field_value ( * field, value) ;
182
- }
183
- }
184
- Err ( e) => {
185
- error ! ( "failed to parse '{}': {}" , & name, e) ;
186
- }
187
+ }
188
+ Err ( e) => {
189
+ error ! ( "failed to parse '{}': {}" , & name, e) ;
187
190
}
188
191
}
189
192
}
Original file line number Diff line number Diff line change @@ -27,28 +27,33 @@ fn get_prettified_json(
27
27
28
28
let mut prettified_field_map = BTreeMap :: new ( ) ;
29
29
for field in fields {
30
- if let Some ( mut field_values) = named_doc. 0 . remove ( & field. name ) {
31
- if field. array {
32
- prettified_field_map. insert ( field. name . clone ( ) , OwnedValue :: Array ( field_values) ) ;
33
- continue ;
34
- }
30
+ let Some ( mut field_values) = named_doc. 0 . remove ( & field. name ) else {
31
+ continue ;
32
+ } ;
35
33
36
- if let Some ( value) = field_values. pop ( ) {
37
- if field. name == DYNAMIC_FIELD_NAME {
38
- if let OwnedValue :: Object ( object) = value {
39
- for ( k, v) in object {
40
- prettified_field_map. insert ( k, v) ;
41
- }
42
- } else {
43
- return Err ( eyre ! (
44
- "expected {} field to be an object" ,
45
- DYNAMIC_FIELD_NAME
46
- ) ) ;
47
- }
48
- } else {
49
- prettified_field_map. insert ( field. name . clone ( ) , value) ;
50
- }
51
- }
34
+ if field. array {
35
+ prettified_field_map. insert ( field. name . clone ( ) , OwnedValue :: Array ( field_values) ) ;
36
+ continue ;
37
+ }
38
+
39
+ let Some ( value) = field_values. pop ( ) else {
40
+ continue ;
41
+ } ;
42
+
43
+ if field. name != DYNAMIC_FIELD_NAME {
44
+ prettified_field_map. insert ( field. name . clone ( ) , value) ;
45
+ continue ;
46
+ }
47
+
48
+ let OwnedValue :: Object ( object) = value else {
49
+ return Err ( eyre ! (
50
+ "expected {} field to be an object" ,
51
+ DYNAMIC_FIELD_NAME
52
+ ) ) ;
53
+ } ;
54
+
55
+ for ( k, v) in object {
56
+ prettified_field_map. insert ( k, v) ;
52
57
}
53
58
}
54
59
You can’t perform that action at this time.
0 commit comments