From: Lanius Trolling Date: Tue, 25 Jul 2023 17:06:00 +0000 (-0400) Subject: Fix attempt to update missing document X-Git-Url: https://gitweb.starshipfights.net/?a=commitdiff_plain;h=37faca05faf3a0b886ea7a07670d835a373ef910;p=factbooks Fix attempt to update missing document --- diff --git a/src/main/kotlin/info/mechyrdia/data/visits.kt b/src/main/kotlin/info/mechyrdia/data/visits.kt index 6d581e6..72b727b 100644 --- a/src/main/kotlin/info/mechyrdia/data/visits.kt +++ b/src/main/kotlin/info/mechyrdia/data/visits.kt @@ -43,13 +43,22 @@ data class PageVisitData( } suspend fun visit(path: String, visitor: String) { - Table.update( - and(PageVisitData::path eq path, PageVisitData::visitor eq visitor), - combine( - inc(PageVisitData::visits, 1L), - setValue(PageVisitData::lastVisit, Instant.now()) + val data = Table.locate(and(PageVisitData::path eq path, PageVisitData::visitor eq visitor)) + if (data == null) + Table.put( + PageVisitData( + path = path, + visitor = visitor, + visits = 1L, + ) + ) + else + Table.put( + data.copy( + visits = data.visits + 1, + lastVisit = Instant.now() + ) ) - ) } suspend fun totalVisits(path: String): PageVisitTotals {