Skip to content

Commit 9c3a758

Browse files
committed
Add creation and patching of phoneSignalAvailability
1 parent 5381b66 commit 9c3a758

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/main/kotlin/server/endpoints/create/NewSectorEndpoint.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package server.endpoints.create
33
import ServerDatabase
44
import data.ExternalTrack
55
import data.LatLng
6+
import data.PhoneSignalAvailability
67
import database.EntityTypes
78
import database.entity.Sector
89
import database.entity.Zone
@@ -32,6 +33,7 @@ object NewSectorEndpoint : SecureEndpointBase("/sector") {
3233
var kidsApt: Boolean? = null
3334
var sunTime: Sector.SunTime? = null
3435
var walkingTime: UInt? = null
36+
var phoneSignalAvailability: List<PhoneSignalAvailability>? = null
3537
var weight: String? = null
3638
var tracks: List<ExternalTrack>? = null
3739
var zone: Zone? = null
@@ -48,6 +50,10 @@ object NewSectorEndpoint : SecureEndpointBase("/sector") {
4850
"kidsApt" -> kidsApt = partData.value.toBoolean()
4951
"sunTime" -> sunTime = partData.value.let { Sector.SunTime.valueOf(it) }
5052
"walkingTime" -> walkingTime = partData.value.toUIntOrNull()
53+
"phoneSignalAvailability" -> phoneSignalAvailability = Json.decodeFromString(
54+
ListSerializer(PhoneSignalAvailability.serializer()),
55+
partData.value
56+
)
5157
"weight" -> weight = partData.value
5258
"tracks" -> tracks = ExternalTrack.decodeFromPart(partData)
5359
"zone" -> ServerDatabase.instance.query {
@@ -80,6 +86,7 @@ object NewSectorEndpoint : SecureEndpointBase("/sector") {
8086
this.kidsApt = kidsApt!!
8187
this.sunTime = sunTime!!
8288
this.walkingTime = walkingTime
89+
this.phoneSignalAvailability = phoneSignalAvailability
8390
this.image = imageFile!!
8491
this.gpx = gpxFile
8592
this.tracks = tracks

src/main/kotlin/server/endpoints/patch/PatchSectorEndpoint.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package server.endpoints.patch
33
import ServerDatabase
44
import data.ExternalTrack
55
import data.LatLng
6+
import data.PhoneSignalAvailability
67
import database.EntityTypes
78
import database.entity.Sector
89
import database.entity.Zone
@@ -13,6 +14,7 @@ import io.ktor.http.HttpHeaders
1314
import io.ktor.http.HttpStatusCode
1415
import io.ktor.server.routing.RoutingContext
1516
import io.ktor.server.util.getValue
17+
import kotlinx.serialization.builtins.ListSerializer
1618
import java.io.File
1719
import java.time.Instant
1820
import server.endpoints.SecureEndpointBase
@@ -34,14 +36,15 @@ object PatchSectorEndpoint : SecureEndpointBase("/sector/{sectorId}") {
3436
val sector = ServerDatabase.instance.query { Sector.findById(sectorId) }
3537
?: return respondFailure(Errors.ObjectNotFound)
3638

37-
// Nullable types: point, walkingTime
39+
// Nullable types: point, walkingTime, phoneSignalAvailability
3840
// Nullable files: gpxFile
3941

4042
var displayName: String? = null
4143
var point: LatLng? = null
4244
var kidsApt: Boolean? = null
4345
var sunTime: Sector.SunTime? = null
4446
var walkingTime: UInt? = null
47+
var phoneSignalAvailability: List<PhoneSignalAvailability>? = null
4548
var weight: String? = null
4649
var tracks: List<ExternalTrack>? = null
4750
var zone: Zone? = null
@@ -81,6 +84,10 @@ object PatchSectorEndpoint : SecureEndpointBase("/sector/{sectorId}") {
8184
else
8285
walkingTime = value.toUIntOrNull()
8386
}
87+
"phoneSignalAvailability" -> phoneSignalAvailability = Json.decodeFromString(
88+
ListSerializer(PhoneSignalAvailability.serializer()),
89+
partData.value
90+
).takeUnless { it.isEmpty() }
8491
}
8592
},
8693
forEachFileItem = { partData ->
@@ -135,6 +142,7 @@ object PatchSectorEndpoint : SecureEndpointBase("/sector/{sectorId}") {
135142
sunTime?.let { sector.sunTime = it }
136143
point?.let { sector.point = it }
137144
walkingTime?.let { sector.walkingTime = it }
145+
phoneSignalAvailability?.let { sector.phoneSignalAvailability = it }
138146
weight?.let { sector.weight = it }
139147
tracks?.let { sector.tracks = it }
140148
zone?.let { sector.zone = it }

0 commit comments

Comments
 (0)