77import eu .pretix .libpretixsync .sqldelight .ClosingExtensionsKt ;
88import eu .pretix .libpretixsync .sqldelight .QueuedCall ;
99import eu .pretix .libpretixsync .sqldelight .QueuedCheckIn ;
10+ import eu .pretix .libpretixsync .sqldelight .QueuedOrder ;
1011import eu .pretix .libpretixsync .sqldelight .SyncDatabase ;
1112import eu .pretix .libpretixsync .utils .JSONUtils ;
1213import io .requery .sql .StatementExecutionException ;
2122import eu .pretix .libpretixsync .SentryInterface ;
2223import eu .pretix .libpretixsync .config .ConfigStore ;
2324import eu .pretix .libpretixsync .db .Answer ;
24- import eu .pretix .libpretixsync .db .QueuedOrder ;
2525import eu .pretix .libpretixsync .db .Receipt ;
2626import eu .pretix .libpretixsync .db .ReceiptLine ;
2727import eu .pretix .libpretixsync .db .ReceiptPayment ;
@@ -608,10 +608,7 @@ protected void uploadReceipts(ProgressFeedback feedback) throws SyncException {
608608 protected void uploadOrders (ProgressFeedback feedback ) throws SyncException {
609609 sentry .addBreadcrumb ("sync.queue" , "Start order upload" );
610610
611- List <QueuedOrder > orders = dataStore .select (QueuedOrder .class )
612- .where (QueuedOrder .ERROR .isNull ())
613- .and (QueuedOrder .LOCKED .eq (false ))
614- .get ().toList ();
611+ List <QueuedOrder > orders = db .getQueuedOrderQueries ().selectUnlockedWithoutError ().executeAsList ();
615612
616613 try {
617614 int i = 0 ;
@@ -621,27 +618,23 @@ protected void uploadOrders(ProgressFeedback feedback) throws SyncException {
621618 }
622619 i ++;
623620
624- qo .setLocked (true );
625- dataStore .update (qo , QueuedOrder .LOCKED );
621+ db .getQueuedOrderQueries ().lock (qo .getId ());
626622 Long startedAt = System .currentTimeMillis ();
627623 PretixApi .ApiResponse resp = api .postResource (
628624 api .eventResourceUrl (qo .getEvent_slug (), "orders" ) + "?pdf_data=true&force=true" ,
629625 new JSONObject (qo .getPayload ()),
630626 qo .getIdempotency_key ()
631627 );
632628 if (resp .getResponse ().code () == 201 ) {
633- Receipt r = qo .getReceipt ();
634- r .setOrder_code (resp .getData ().getString ("code" ));
635- dataStore .update (r , Receipt .ORDER_CODE );
636- dataStore .delete (qo );
629+ db .getReceiptQueries ().updateOrderCode (resp .getData ().getString ("code" ), qo .getReceipt ());
630+ db .getQueuedOrderQueries ().delete (qo .getId ());
637631 (new OrderSyncAdapter (db , fileStorage , qo .getEvent_slug (), null , true , true , api , configStore .getSyncCycleId (), null )).standaloneRefreshFromJSON (resp .getData ());
638632 if (connectivityFeedback != null ) {
639633 connectivityFeedback .recordSuccess (System .currentTimeMillis () - startedAt );
640634 }
641635 } else if (resp .getResponse ().code () == 400 ) {
642636 // TODO: User feedback or log in some way?
643- qo .setError (resp .getData ().toString ());
644- dataStore .update (qo );
637+ db .getQueuedOrderQueries ().updateError (resp .getData ().toString (), qo .getId ());
645638 }
646639 }
647640 } catch (JSONException e ) {
0 commit comments