7
7
import eu .pretix .libpretixsync .sqldelight .ClosingExtensionsKt ;
8
8
import eu .pretix .libpretixsync .sqldelight .QueuedCall ;
9
9
import eu .pretix .libpretixsync .sqldelight .QueuedCheckIn ;
10
+ import eu .pretix .libpretixsync .sqldelight .QueuedOrder ;
10
11
import eu .pretix .libpretixsync .sqldelight .SyncDatabase ;
11
12
import eu .pretix .libpretixsync .utils .JSONUtils ;
12
13
import io .requery .sql .StatementExecutionException ;
22
23
import eu .pretix .libpretixsync .SentryInterface ;
23
24
import eu .pretix .libpretixsync .config .ConfigStore ;
24
25
import eu .pretix .libpretixsync .db .Answer ;
25
- import eu .pretix .libpretixsync .db .QueuedOrder ;
26
26
import eu .pretix .libpretixsync .db .Receipt ;
27
27
import eu .pretix .libpretixsync .db .ReceiptLine ;
28
28
import eu .pretix .libpretixsync .db .ReceiptPayment ;
@@ -617,10 +617,7 @@ protected void uploadReceipts(ProgressFeedback feedback) throws SyncException {
617
617
protected void uploadOrders (ProgressFeedback feedback ) throws SyncException {
618
618
sentry .addBreadcrumb ("sync.queue" , "Start order upload" );
619
619
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 ();
624
621
625
622
try {
626
623
int i = 0 ;
@@ -630,27 +627,23 @@ protected void uploadOrders(ProgressFeedback feedback) throws SyncException {
630
627
}
631
628
i ++;
632
629
633
- qo .setLocked (true );
634
- dataStore .update (qo , QueuedOrder .LOCKED );
630
+ db .getQueuedOrderQueries ().lock (qo .getId ());
635
631
Long startedAt = System .currentTimeMillis ();
636
632
PretixApi .ApiResponse resp = api .postResource (
637
633
api .eventResourceUrl (qo .getEvent_slug (), "orders" ) + "?pdf_data=true&force=true" ,
638
634
new JSONObject (qo .getPayload ()),
639
635
qo .getIdempotency_key ()
640
636
);
641
637
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 ());
646
640
(new OrderSyncAdapter (db , fileStorage , qo .getEvent_slug (), null , true , true , api , configStore .getSyncCycleId (), null )).standaloneRefreshFromJSON (resp .getData ());
647
641
if (connectivityFeedback != null ) {
648
642
connectivityFeedback .recordSuccess (System .currentTimeMillis () - startedAt );
649
643
}
650
644
} else if (resp .getResponse ().code () == 400 ) {
651
645
// 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 ());
654
647
}
655
648
}
656
649
} catch (JSONException e ) {
0 commit comments