val newName = formParams["name"]?.takeIf { it.isNotBlank() && it.length <= SHIP_NAME_MAX_LENGTH } ?: redirect("/admiral/${admiralId}/manage")
ShipInDrydock.set(shipId, setValue(ShipInDrydock::name, newName))
+
redirect("/admiral/${admiralId}/manage")
}
if (ship.status != DrydockStatus.Ready) redirect("/admiral/${admiralId}/manage")
if (ship.shipType.weightClass.isUnique) redirect("/admiral/${admiralId}/manage")
- launch { ShipInDrydock.del(shipId) }
- launch {
- Admiral.set(admiralId, inc(Admiral::money, ship.shipType.weightClass.sellPrice))
+ coroutineScope {
+ launch { ShipInDrydock.del(shipId) }
+ launch { Admiral.set(admiralId, inc(Admiral::money, ship.shipType.weightClass.sellPrice)) }
}
redirect("/admiral/${admiralId}/manage")
owningAdmiral = admiralId
)
- launch { ShipInDrydock.put(newShip) }
- launch {
- Admiral.set(admiralId, inc(Admiral::money, -shipType.weightClass.buyPrice))
+ coroutineScope {
+ launch { ShipInDrydock.put(newShip) }
+ launch { Admiral.set(admiralId, inc(Admiral::money, -shipType.weightClass.buyPrice)) }
}
redirect("/admiral/${admiralId}/manage")
if (admiral.owningUser != currentUser) throw ForbiddenException()
- Admiral.del(admiralId)
- ShipInDrydock.remove(ShipInDrydock::owningAdmiral eq admiralId)
+ coroutineScope {
+ launch { Admiral.del(admiralId) }
+ launch { ShipInDrydock.remove(ShipInDrydock::owningAdmiral eq admiralId) }
+ }
+
redirect("/me")
}
expiration = Instant.now().plus(1, ChronoUnit.HOURS)
)
- launch { User.put(user) }
- launch { UserSession.put(userSession) }
+ coroutineScope {
+ launch { User.put(user) }
+ launch { UserSession.put(userSession) }
+ }
call.sessions.set(userSession.id)
redirect(redirectTo)