Skip to content

Commit 8b87835

Browse files
committed
Migrate remaining usage of QueuedOrder
1 parent 87434df commit 8b87835

File tree

3 files changed

+29
-13
lines changed

3 files changed

+29
-13
lines changed

libpretixsync/src/main/java/eu/pretix/libpretixsync/sync/SyncManager.java

+6-13
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import eu.pretix.libpretixsync.sqldelight.ClosingExtensionsKt;
88
import eu.pretix.libpretixsync.sqldelight.QueuedCall;
99
import eu.pretix.libpretixsync.sqldelight.QueuedCheckIn;
10+
import eu.pretix.libpretixsync.sqldelight.QueuedOrder;
1011
import eu.pretix.libpretixsync.sqldelight.SyncDatabase;
1112
import eu.pretix.libpretixsync.utils.JSONUtils;
1213
import io.requery.sql.StatementExecutionException;
@@ -22,7 +23,6 @@
2223
import eu.pretix.libpretixsync.SentryInterface;
2324
import eu.pretix.libpretixsync.config.ConfigStore;
2425
import eu.pretix.libpretixsync.db.Answer;
25-
import eu.pretix.libpretixsync.db.QueuedOrder;
2626
import eu.pretix.libpretixsync.db.Receipt;
2727
import eu.pretix.libpretixsync.db.ReceiptLine;
2828
import 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) {

libpretixsync/src/main/sqldelight/common/eu/pretix/libpretixsync/sqldelight/QueuedOrder.sq

+17
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ SELECT *
33
FROM QueuedOrder
44
WHERE id = ?;
55

6+
selectUnlockedWithoutError:
7+
SELECT *
8+
FROM QueuedOrder
9+
WHERE locked = FALSE AND error IS NULL;
10+
611
delete:
712
DELETE FROM QueuedOrder
813
WHERE id = ?;
@@ -27,3 +32,15 @@ VALUES(
2732
?,
2833
?
2934
);
35+
36+
lock:
37+
UPDATE QueuedOrder
38+
SET
39+
locked = TRUE
40+
WHERE id = ?;
41+
42+
updateError:
43+
UPDATE QueuedOrder
44+
SET
45+
error = ?
46+
WHERE id = ?;

libpretixsync/src/main/sqldelight/common/eu/pretix/libpretixsync/sqldelight/Receipt.sq

+6
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,9 @@ VALUES (
5656
?,
5757
?
5858
);
59+
60+
updateOrderCode:
61+
UPDATE Receipt
62+
SET
63+
order_code = ?
64+
WHERE id = ?;

0 commit comments

Comments
 (0)