Cześć mam taki problem: założmy że robimy sobie walidację i wychodzi nam:
Either<ExchangeRatesRequestError, ExchangeRatesRequest>
Założenie jest takie -> jeśli request jest poprawny to pobieramy dane np. z restowego api i otrzymujemy
Either<ExchangeRatesRequestError, Traversable<HistoricalExchangeRateItem>>
Teraz pytanie brzmi - jak zrobić to "mapowanie". Normalnie od tego jest np. metoda map, ale map nie powinna zdaje się mieć side effectów.
Podsumowując:
-
mam na wejściu Either<ExchangeRatesRequestError, ExchangeRatesRequest>
-
dla Either.right to wołam jakąś funkcję getHistoricalExchangeRates która przyjmuje ExchangeRatesRequest i zwraca Traversable<HistoricalExchangeRateItem>, tak więc z
<ExchangeRatesRequestError, ExchangeRatesRequest> robię Either<ExchangeRatesRequestError, Traversable<HistoricalExchangeRateItem>> -
jeśli nie to Either.left jest zwracany
scibi92