Skip to content

Commit 18733f4

Browse files
committed
Migrate remaining usage of QueuedOrder
1 parent dc70d82 commit 18733f4

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

Lines changed: 6 additions & 13 deletions
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;
@@ -21,7 +22,6 @@
2122
import eu.pretix.libpretixsync.SentryInterface;
2223
import eu.pretix.libpretixsync.config.ConfigStore;
2324
import eu.pretix.libpretixsync.db.Answer;
24-
import eu.pretix.libpretixsync.db.QueuedOrder;
2525
import eu.pretix.libpretixsync.db.Receipt;
2626
import eu.pretix.libpretixsync.db.ReceiptLine;
2727
import 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) {

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

Lines changed: 17 additions & 0 deletions
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

Lines changed: 6 additions & 0 deletions
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)