Tristan MARIE
07/08/2020, 2:00 PMraulraja
07/08/2020, 2:32 PMsimon.vergauwen
07/08/2020, 3:16 PMA?
to Either<E, A>
. Where you have to supply a fallback E
value. You can find it as rightIfNull
there are runnable examples on the website.
https://arrow-kt.io/docs/0.10/apidocs/arrow-core-data/arrow.core/-either/#syntaxfteychene
07/08/2020, 3:19 PMpost("...") {
val dayToAdd: Either<ServerError, String> = ...
val year: Either<ServerError, Int> = ...
val month: Either<ServerError, String> = ...
dayToAdd.product(year).product(month)
.flatMap{ (dayToAdd, year, month) ->
PlanningService.getOrCreate(year, month)
.map { planning -> PlanningService.addDayToPlanning(planning, dayToAdd) }
}
.fold(
{ /* Respond Error */ println(it) },
{ /* Respond */ println("Success") }
)
}
If i'm wrong please let me know 😅