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)
|
||||
}
|
||||
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}") {
|
||||
val stopId = call.parameters["stop_id"]!!
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package moe.lava.banksia.server
|
||||
|
||||
import androidx.room.immediateTransaction
|
||||
import androidx.room.useWriterConnection
|
||||
import io.ktor.util.logging.Logger
|
||||
import moe.lava.banksia.model.Route
|
||||
import moe.lava.banksia.model.Service
|
||||
|
|
@ -19,6 +21,8 @@ class GtfsImporter(
|
|||
private val log: Logger,
|
||||
) {
|
||||
suspend fun import(url: String, date: Long = Clock.System.now().epochSeconds) {
|
||||
database.useWriterConnection { transactor ->
|
||||
transactor.immediateTransaction {
|
||||
database.routeDao.deleteAll()
|
||||
database.serviceDao.deleteAll()
|
||||
database.shapeDao.deleteAll()
|
||||
|
|
@ -39,6 +43,8 @@ class GtfsImporter(
|
|||
|
||||
updateMetadata(date)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun updateMetadata(date: Long) {
|
||||
val dao = database.versionMetadataDao
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue