diff options
Diffstat (limited to 'Biz/Ibb/Move.hs')
-rw-r--r-- | Biz/Ibb/Move.hs | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/Biz/Ibb/Move.hs b/Biz/Ibb/Move.hs deleted file mode 100644 index 2135f85..0000000 --- a/Biz/Ibb/Move.hs +++ /dev/null @@ -1,53 +0,0 @@ -{-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE NoImplicitPrelude #-} - --- | App update logic -module Biz.Ibb.Move - ( move, - - -- * Server interactions - fetchPeople, - ) -where - -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 (ChangeRoute u) m = - m <# do - pushURI u >> pure Nop -move FetchPeople m = m <# (SetPeople </ fetchPeople) -move (SetPeople ps) m = noEff m {people = ps} - -fetchPeople :: IO (WebData [Core.Person]) -fetchPeople = do - mjson <- contents </ xhrByteString req - case mjson of - 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 - } |