private fun getPromotionalOfferDate(gameJson: JsonNode, date: String) = listOf("promotionalOffers", "upcomingPromotionalOffers")
.map { "/promotions/$it/0/promotionalOffers/0/$date" }
- .map { gameJson.at(it) }
- .filter { !it.isMissingNode }
- .map { it.asText() }
+ .map(gameJson::at)
+ .filterNot(JsonNode::isMissingNode)
+ .map(JsonNode::asText)
.map(Instant::parse)
.first()
}
-data class FreeGame(
- val title: String,
- val imageUrl: String,
- val startDate: Instant,
- val endDate: Instant
-)
-
class FreeGamesState(val games: Set<FreeGame>) : AbstractState(true) {
override fun plainText(): String {