@@ -218,16 +218,29 @@ def _create_new_utterance(self, update, new_id):
218
218
return new_utterance
219
219
220
220
def update_utterances (self , utterance_master , utterance_update ):
221
- id_to_update = {}
221
+ id_to_update_or_delete = {}
222
+ id_to_create = {}
222
223
utterance_new = []
223
224
224
225
for utterance in utterance_update :
225
226
id = utterance ["id" ]
226
- id_to_update [id ] = utterance
227
+ operation = utterance ["operation" ]
228
+ if operation == "create" :
229
+ id_to_create [id ] = utterance
230
+ else :
231
+ id_to_update_or_delete [id ] = utterance
227
232
228
233
for utterance in utterance_master :
229
234
id = utterance ["id" ]
230
- update = id_to_update .get (id , None )
235
+
236
+ create = id_to_create .get (id , None )
237
+ if create :
238
+ new_id = self ._get_highest_id (utterance_master ) + 1
239
+ new_utterance = self ._create_new_utterance (create , new_id )
240
+ if new_utterance :
241
+ utterance_new .append (new_utterance )
242
+
243
+ update = id_to_update_or_delete .get (id , None )
231
244
if not update :
232
245
utterance_new .append (utterance )
233
246
continue
@@ -239,13 +252,6 @@ def update_utterances(self, utterance_master, utterance_update):
239
252
if operation == "delete" :
240
253
continue
241
254
242
- if operation == "create" :
243
- new_id = self ._get_highest_id (utterance_master ) + 1
244
- utterance = self ._create_new_utterance (update , new_id )
245
- if utterance :
246
- utterance_new .append (utterance )
247
- continue
248
-
249
255
if operation != "update" :
250
256
raise ValueError (f"Invalid operation { operation } " )
251
257
0 commit comments