diff options
Diffstat (limited to 'Biz/Ibb/Move.hs')
-rw-r--r-- | Biz/Ibb/Move.hs | 62 |
1 files changed, 33 insertions, 29 deletions
diff --git a/Biz/Ibb/Move.hs b/Biz/Ibb/Move.hs index 1e635ac..0dec4e5 100644 --- a/Biz/Ibb/Move.hs +++ b/Biz/Ibb/Move.hs @@ -1,34 +1,36 @@ -{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE NoImplicitPrelude #-} -- | App update logic module Biz.Ibb.Move - ( move - -- * Server interactions - , fetchPeople + ( move, + + -- * Server interactions + fetchPeople, ) where -import Alpha -import Biz.Ibb.Core as Core -import Network.RemoteData -import Data.Aeson -import JavaScript.Web.XMLHttpRequest ( Request(..) - , Method(GET) - , RequestData(NoData) - , contents - , xhrByteString - ) -import Miso -import Miso.String +import Alpha +import Biz.Ibb.Core as Core +import Data.Aeson +import JavaScript.Web.XMLHttpRequest + ( Method (GET), + Request (..), + RequestData (NoData), + contents, + xhrByteString, + ) +import Miso +import Miso.String +import Network.RemoteData move :: Action -> Model -> Effect Action Model -move Nop m = noEff m -move (HandleRoute u) m = m { uri = u } <# pure Nop +move Nop m = noEff m +move (HandleRoute u) m = m {uri = u} <# pure Nop move (ChangeRoute u) m = m <# do pushURI u >> pure Nop -move FetchPeople m = m <# (SetPeople </ fetchPeople) -move (SetPeople ps) m = noEff m { people = ps } +move FetchPeople m = m <# (SetPeople </ fetchPeople) +move (SetPeople ps) m = noEff m {people = ps} fetchPeople :: IO (WebData [Core.Person]) fetchPeople = do @@ -37,12 +39,14 @@ fetchPeople = do Nothing -> pure $ Failure "could not read from server" Just a -> pure $ fromEither $ either (Left . ms) pure $ eitherDecodeStrict a - where - req = Request { reqMethod = GET - -- FIXME: can replace this hardcoding with a function? - , reqURI = "/api/people" - , reqLogin = Nothing - , reqHeaders = [] - , reqWithCredentials = False - , reqData = NoData - } + where + req = + Request + { reqMethod = GET, + -- FIXME: can replace this hardcoding with a function? + reqURI = "/api/people", + reqLogin = Nothing, + reqHeaders = [], + reqWithCredentials = False, + reqData = NoData + } |