Skip to content

Commit 586419b

Browse files
robbi5antweb
authored andcommitted
Add remaining CachedPdfImage queries
1 parent 755617d commit 586419b

File tree

3 files changed

+21
-8
lines changed

3 files changed

+21
-8
lines changed

libpretixsync/src/main/java/eu/pretix/libpretixsync/sync/OrderCleanup.kt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@ package eu.pretix.libpretixsync.sync
22

33
import eu.pretix.libpretixsync.api.ApiException
44
import eu.pretix.libpretixsync.api.PretixApi
5-
import eu.pretix.libpretixsync.db.*
5+
import eu.pretix.libpretixsync.db.Event
6+
import eu.pretix.libpretixsync.db.Order
7+
import eu.pretix.libpretixsync.db.OrderPosition
8+
import eu.pretix.libpretixsync.db.ResourceSyncStatus
9+
import eu.pretix.libpretixsync.db.SubEvent
10+
import eu.pretix.libpretixsync.sqldelight.SyncDatabase
611
import eu.pretix.libpretixsync.sync.SyncManager.ProgressFeedback
712
import io.requery.BlockingEntityStore
813
import io.requery.Persistable
@@ -13,7 +18,7 @@ import org.joda.time.Duration
1318
import org.json.JSONException
1419
import kotlin.math.max
1520

16-
class OrderCleanup(val store: BlockingEntityStore<Persistable>, val fileStorage: FileStorage, val api: PretixApi, val syncCycleId: String, val feedback: ProgressFeedback?) {
21+
class OrderCleanup(val db: SyncDatabase, val store: BlockingEntityStore<Persistable>, val fileStorage: FileStorage, val api: PretixApi, val syncCycleId: String, val feedback: ProgressFeedback?) {
1722
private var subeventsDeletionDate: MutableMap<Long, Long?> = HashMap()
1823
private fun deletionTimeForSubevent(sid: Long, eventSlug: String): Long? {
1924
if (subeventsDeletionDate.containsKey(sid)) {
@@ -177,13 +182,11 @@ class OrderCleanup(val store: BlockingEntityStore<Persistable>, val fileStorage:
177182
}
178183

179184
fun deleteOldPdfImages() {
180-
store.delete(CachedPdfImage::class.java).where(
181-
CachedPdfImage.ORDERPOSITION_ID.notIn(store.select(OrderPosition.SERVER_ID).from(OrderPosition::class.java))
182-
)
185+
db.cachedPdfImageQueries.deleteOld()
183186
for (filename in fileStorage.listFiles { _, s -> s.startsWith("pdfimage_") }) {
184187
val namebase = filename.split("\\.".toRegex()).toTypedArray()[0]
185188
val etag = namebase.split("_".toRegex()).toTypedArray()[1]
186-
if (store.count(CachedPdfImage::class.java).where(CachedPdfImage.ETAG.eq(etag)).get().value() == 0) {
189+
if (db.cachedPdfImageQueries.countEtag(etag).executeAsOne() == 0L) {
187190
fileStorage.delete(filename)
188191
}
189192
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ protected void downloadData(ProgressFeedback feedback, Boolean skip_orders, Stri
467467
}
468468

469469
if (profile == Profile.PRETIXSCAN && !skip_orders && overrideEventSlug == null) {
470-
OrderCleanup oc = new OrderCleanup(dataStore, fileStorage, api, configStore.getSyncCycleId(), feedback);
470+
OrderCleanup oc = new OrderCleanup(db, dataStore, fileStorage, api, configStore.getSyncCycleId(), feedback);
471471
if ((System.currentTimeMillis() - configStore.getLastCleanup()) > 3600 * 1000 * 12) {
472472
for (String eventSlug : configStore.getSynchronizedEvents()) {
473473
oc.deleteOldSubevents(eventSlug, overrideSubeventId > 0L ? overrideSubeventId : configStore.getSelectedSubeventForEvent(eventSlug));
@@ -482,7 +482,7 @@ protected void downloadData(ProgressFeedback feedback, Boolean skip_orders, Stri
482482
dataStore.delete(Order.class).get().value();
483483
dataStore.delete(ResourceSyncStatus.class).where(ResourceSyncStatus.RESOURCE.like("order%")).get().value();
484484
if ((System.currentTimeMillis() - configStore.getLastCleanup()) > 3600 * 1000 * 12) {
485-
OrderCleanup oc = new OrderCleanup(dataStore, fileStorage, api, configStore.getSyncCycleId(), feedback);
485+
OrderCleanup oc = new OrderCleanup(db, dataStore, fileStorage, api, configStore.getSyncCycleId(), feedback);
486486
oc.deleteOldPdfImages();
487487
configStore.setLastCleanup(System.currentTimeMillis());
488488
}

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,13 @@ DELETE FROM CachedPdfImage
3333
WHERE
3434
orderposition_id = :orderposition_id
3535
AND etag NOT IN :seen_etags;
36+
37+
deleteOld:
38+
DELETE FROM CachedPdfImage
39+
WHERE
40+
orderposition_id NOT IN (SELECT server_id FROM OrderPosition);
41+
42+
countEtag:
43+
SELECT COUNT()
44+
FROM CachedPdfImage
45+
WHERE etag = ?;

0 commit comments

Comments
 (0)