feat(server/gtfs): use transaction for imports
This commit is contained in:
parent
b568ed547a
commit
91d4fe25a6
2 changed files with 22 additions and 31 deletions
|
|
@ -132,21 +132,6 @@ fun Application.module() {
|
||||||
routeDao.stops(routeId)
|
routeDao.stops(routeId)
|
||||||
}
|
}
|
||||||
call.respond(stops.map { it.asModel() })
|
call.respond(stops.map { it.asModel() })
|
||||||
// val stops = withContext(Dispatchers.IO) {
|
|
||||||
// val stopDao by inject<StopDao>()
|
|
||||||
// val stopTimeDao by inject<StopTimeDao>()
|
|
||||||
// val tripDao by inject<TripDao>()
|
|
||||||
//
|
|
||||||
// tripDao.getByRoute(routeId)
|
|
||||||
// .map { it.id }
|
|
||||||
// .let { stopTimeDao.get(it) }
|
|
||||||
// .flatMap { it.asModel().stopInfos }
|
|
||||||
// .map { it.stopId }
|
|
||||||
// .let { stopDao.get(it) }
|
|
||||||
// .map { it.asModel() }
|
|
||||||
// }
|
|
||||||
// call.respond(stops)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
get("/stoptimes/by_stop/{stop_id}") {
|
get("/stoptimes/by_stop/{stop_id}") {
|
||||||
val stopId = call.parameters["stop_id"]!!
|
val stopId = call.parameters["stop_id"]!!
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package moe.lava.banksia.server
|
package moe.lava.banksia.server
|
||||||
|
|
||||||
|
import androidx.room.immediateTransaction
|
||||||
|
import androidx.room.useWriterConnection
|
||||||
import io.ktor.util.logging.Logger
|
import io.ktor.util.logging.Logger
|
||||||
import moe.lava.banksia.model.Route
|
import moe.lava.banksia.model.Route
|
||||||
import moe.lava.banksia.model.Service
|
import moe.lava.banksia.model.Service
|
||||||
|
|
@ -19,6 +21,8 @@ class GtfsImporter(
|
||||||
private val log: Logger,
|
private val log: Logger,
|
||||||
) {
|
) {
|
||||||
suspend fun import(url: String, date: Long = Clock.System.now().epochSeconds) {
|
suspend fun import(url: String, date: Long = Clock.System.now().epochSeconds) {
|
||||||
|
database.useWriterConnection { transactor ->
|
||||||
|
transactor.immediateTransaction {
|
||||||
database.routeDao.deleteAll()
|
database.routeDao.deleteAll()
|
||||||
database.serviceDao.deleteAll()
|
database.serviceDao.deleteAll()
|
||||||
database.shapeDao.deleteAll()
|
database.shapeDao.deleteAll()
|
||||||
|
|
@ -39,6 +43,8 @@ class GtfsImporter(
|
||||||
|
|
||||||
updateMetadata(date)
|
updateMetadata(date)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private suspend fun updateMetadata(date: Long) {
|
private suspend fun updateMetadata(date: Long) {
|
||||||
val dao = database.versionMetadataDao
|
val dao = database.versionMetadataDao
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue