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 ;
2223import eu .pretix .libpretixsync .SentryInterface ;
2324import eu .pretix .libpretixsync .config .ConfigStore ;
2425import eu .pretix .libpretixsync .db .Answer ;
25- import eu .pretix .libpretixsync .db .QueuedOrder ;
2626import eu .pretix .libpretixsync .db .Receipt ;
2727import eu .pretix .libpretixsync .db .ReceiptLine ;
2828import eu .pretix .libpretixsync .db .ReceiptPayment ;
@@ -617,10 +617,7 @@ protected void uploadReceipts(ProgressFeedback feedback) throws SyncException {
617617 protected void uploadOrders (ProgressFeedback feedback ) throws SyncException {
618618 sentry .addBreadcrumb ("sync.queue" , "Start order upload" );
619619
620- List <QueuedOrder > orders = dataStore .select (QueuedOrder .class )
621- .where (QueuedOrder .ERROR .isNull ())
622- .and (QueuedOrder .LOCKED .eq (false ))
623- .get ().toList ();
620+ List <QueuedOrder > orders = db .getQueuedOrderQueries ().selectUnlockedWithoutError ().executeAsList ();
624621
625622 try {
626623 int i = 0 ;
@@ -630,27 +627,23 @@ protected void uploadOrders(ProgressFeedback feedback) throws SyncException {
630627 }
631628 i ++;
632629
633- qo .setLocked (true );
634- dataStore .update (qo , QueuedOrder .LOCKED );
630+ db .getQueuedOrderQueries ().lock (qo .getId ());
635631 Long startedAt = System .currentTimeMillis ();
636632 PretixApi .ApiResponse resp = api .postResource (
637633 api .eventResourceUrl (qo .getEvent_slug (), "orders" ) + "?pdf_data=true&force=true" ,
638634 new JSONObject (qo .getPayload ()),
639635 qo .getIdempotency_key ()
640636 );
641637 if (resp .getResponse ().code () == 201 ) {
642- Receipt r = qo .getReceipt ();
643- r .setOrder_code (resp .getData ().getString ("code" ));
644- dataStore .update (r , Receipt .ORDER_CODE );
645- dataStore .delete (qo );
638+ db .getReceiptQueries ().updateOrderCode (resp .getData ().getString ("code" ), qo .getReceipt ());
639+ db .getQueuedOrderQueries ().delete (qo .getId ());
646640 (new OrderSyncAdapter (db , fileStorage , qo .getEvent_slug (), null , true , true , api , configStore .getSyncCycleId (), null )).standaloneRefreshFromJSON (resp .getData ());
647641 if (connectivityFeedback != null ) {
648642 connectivityFeedback .recordSuccess (System .currentTimeMillis () - startedAt );
649643 }
650644 } else if (resp .getResponse ().code () == 400 ) {
651645 // TODO: User feedback or log in some way?
652- qo .setError (resp .getData ().toString ());
653- dataStore .update (qo );
646+ db .getQueuedOrderQueries ().updateError (resp .getData ().toString (), qo .getId ());
654647 }
655648 }
656649 } catch (JSONException e ) {
0 commit comments