Skip to content

Commit 206d05c

Browse files
committed
Move AbstractQueuedCheckIn.formatDatetime to new model
1 parent 4842644 commit 206d05c

File tree

3 files changed

+27
-9
lines changed

3 files changed

+27
-9
lines changed

libpretixsync/src/main/java/eu/pretix/libpretixsync/api/PretixApi.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ package eu.pretix.libpretixsync.api
33
import eu.pretix.libpretixsync.DummySentryImplementation
44
import eu.pretix.libpretixsync.SentryInterface
55
import eu.pretix.libpretixsync.config.ConfigStore
6-
import eu.pretix.libpretixsync.db.AbstractQueuedCheckIn
76
import eu.pretix.libpretixsync.db.Answer
87
import eu.pretix.libpretixsync.models.Question
8+
import eu.pretix.libpretixsync.models.QueuedCheckIn
99
import eu.pretix.libpretixsync.utils.NetUtils
1010
import eu.pretix.libpretixsync.utils.URLFragmentEncoder
1111
import okhttp3.MediaType
@@ -46,7 +46,7 @@ open class PretixApi(url: String, key: String, orgaSlug: String, version: Int, h
4646
fun redeem(eventSlug: String, secret: String, datetime: Date?, force: Boolean, nonce: String?, answers: List<Answer>?, listId: Long, ignore_unpaid: Boolean, pdf_data: Boolean, type: String?, source_type: String?, callTimeout: Long? = null, questions_supported: Boolean = true): ApiResponse {
4747
var dt: String? = null
4848
if (datetime != null) {
49-
dt = AbstractQueuedCheckIn.formatDatetime(datetime)
49+
dt = QueuedCheckIn.formatDatetime(datetime)
5050
}
5151
return redeem(eventSlug, secret, dt, force, nonce, answers, listId, ignore_unpaid, pdf_data, type, source_type, callTimeout, questions_supported)
5252
}
@@ -93,7 +93,7 @@ open class PretixApi(url: String, key: String, orgaSlug: String, version: Int, h
9393
fun redeem(lists: List<Long>, secret: String, datetime: Date?, force: Boolean, nonce: String?, answers: List<Answer>?, ignore_unpaid: Boolean, pdf_data: Boolean, type: String?, source_type: String?, callTimeout: Long? = null, questions_supported: Boolean = true): ApiResponse {
9494
var dt: String? = null
9595
if (datetime != null) {
96-
dt = AbstractQueuedCheckIn.formatDatetime(datetime)
96+
dt = QueuedCheckIn.formatDatetime(datetime)
9797
}
9898
return redeem(lists, secret, dt, force, nonce, answers, ignore_unpaid, pdf_data, type, source_type, callTimeout, questions_supported)
9999
}

libpretixsync/src/main/java/eu/pretix/libpretixsync/check/AsyncCheckProvider.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import eu.pretix.libpretixsync.config.ConfigStore
77
import eu.pretix.libpretixsync.crypto.isValidSignature
88
import eu.pretix.libpretixsync.crypto.readPubkeyFromPem
99
import eu.pretix.libpretixsync.crypto.sig1.TicketProtos
10-
import eu.pretix.libpretixsync.db.AbstractQueuedCheckIn
1110
import eu.pretix.libpretixsync.db.Answer
1211
import eu.pretix.libpretixsync.db.NonceGenerator
1312
import eu.pretix.libpretixsync.db.QuestionLike
@@ -66,7 +65,7 @@ class AsyncCheckProvider(private val config: ConfigStore, private val db: SyncDa
6665

6766
val dt = now()
6867
val jdoc = JSONObject()
69-
jdoc.put("datetime", AbstractQueuedCheckIn.formatDatetime(dt.toDate()))
68+
jdoc.put("datetime", QueuedCheckIn.formatDatetime(dt.toDate()))
7069
if (raw_barcode.contains(Regex("[\\p{C}]"))) {
7170
jdoc.put("raw_barcode", "binary:" + Base64.encodeBase64(raw_barcode.toByteArray(Charset.defaultCharset())).toString(Charset.defaultCharset()))
7271
} else {
@@ -521,7 +520,7 @@ class AsyncCheckProvider(private val config: ConfigStore, private val db: SyncDa
521520
answers = givenAnswers.toString(),
522521
checkinListId = listId,
523522
datetime = dt.toDate(),
524-
datetime_string = AbstractQueuedCheckIn.formatDatetime(dt.toDate()),
523+
datetime_string = QueuedCheckIn.formatDatetime(dt.toDate()),
525524
event_slug = eventSlug,
526525
nonce = nonce ?: NonceGenerator.nextNonce(),
527526
secret = ticketid,
@@ -929,7 +928,7 @@ class AsyncCheckProvider(private val config: ConfigStore, private val db: SyncDa
929928
answers = givenAnswers.toString(),
930929
checkinListId = listId,
931930
datetime = dt.toDate(),
932-
datetime_string = AbstractQueuedCheckIn.formatDatetime(dt.toDate()),
931+
datetime_string = QueuedCheckIn.formatDatetime(dt.toDate()),
933932
event_slug = eventSlug,
934933
nonce = nonce ?: NonceGenerator.nextNonce(),
935934
secret = position.secret,
@@ -943,7 +942,7 @@ class AsyncCheckProvider(private val config: ConfigStore, private val db: SyncDa
943942
position = position.id,
944943
type = type.toString().lowercase(Locale.getDefault()),
945944
datetime = dt.toDate(),
946-
json_data = "{\"local\": true, \"type\": \"${type.toString().lowercase(Locale.getDefault())}\", \"datetime\": \"${AbstractQueuedCheckIn.formatDatetime(dt.toDate())}\"}",
945+
json_data = "{\"local\": true, \"type\": \"${type.toString().lowercase(Locale.getDefault())}\", \"datetime\": \"${QueuedCheckIn.formatDatetime(dt.toDate())}\"}",
947946
)
948947
}
949948
}

libpretixsync/src/main/java/eu/pretix/libpretixsync/models/QueuedCheckIn.kt

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
package eu.pretix.libpretixsync.models
22

3+
import java.text.DateFormat
4+
import java.text.SimpleDateFormat
35
import java.time.OffsetDateTime
6+
import java.util.Date
7+
import java.util.Locale
8+
import java.util.TimeZone
49

510
data class QueuedCheckIn(
611
val id: Long,
@@ -12,4 +17,18 @@ data class QueuedCheckIn(
1217
val secret: String?,
1318
val sourceType: String?,
1419
val type: String?,
15-
)
20+
) {
21+
companion object {
22+
// Migrated from AbstractQueuedCheckIn
23+
// TODO: Find a better place for this?
24+
fun formatDatetime(date: Date): String {
25+
val tz = TimeZone.getTimeZone("UTC")
26+
val df: DateFormat = SimpleDateFormat(
27+
"yyyy-MM-dd'T'HH:mm:ss'Z'",
28+
Locale.ENGLISH
29+
) // Quoted "Z" to indicate UTC, no timezone offset
30+
df.timeZone = tz
31+
return df.format(date)
32+
}
33+
}
34+
}

0 commit comments

Comments
 (0)