@@ -3,6 +3,7 @@ package server.endpoints.patch
33import ServerDatabase
44import data.ExternalTrack
55import data.LatLng
6+ import data.PhoneSignalAvailability
67import database.EntityTypes
78import database.entity.Sector
89import database.entity.Zone
@@ -13,6 +14,7 @@ import io.ktor.http.HttpHeaders
1314import io.ktor.http.HttpStatusCode
1415import io.ktor.server.routing.RoutingContext
1516import io.ktor.server.util.getValue
17+ import kotlinx.serialization.builtins.ListSerializer
1618import java.io.File
1719import java.time.Instant
1820import 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