git.iko.soy/rowtype-yoga/purescript-lunapark
on main help sign in
Updates for affjax 7.0
1ad6e7cChristoph
bower.json+1−1
@@ -27,7 +27,7 @@
27 "purescript-xpath": "cryogenian/purescript-xpath#compiler/0.12",
27 "purescript-xpath": "cryogenian/purescript-xpath#compiler/0.12",
28 "purescript-argonaut-core": "^4.0.0",
28 "purescript-argonaut-core": "^4.0.0",
29 "purescript-argonaut-codecs": "^4.0.0",
29 "purescript-argonaut-codecs": "^4.0.0",
30− "purescript-affjax": "^6.0.0",
30+ "purescript-affjax": "^7.0.0",
31 "purescript-css": "^4.0.0",
31 "purescript-css": "^4.0.0",
32 "purescript-node-fs-aff": "^6.0.0",
32 "purescript-node-fs-aff": "^6.0.0",
33 "purescript-run": "cryogenian/purescript-run#compiler/0.12"
33 "purescript-run": "cryogenian/purescript-run#compiler/0.12"
src/Lunapark/Endpoint.purs+13−10
@@ -7,22 +7,22 @@ module Lunapark.Endpoint where
7
7
8import Prelude
8import Prelude
9
9
10−import Effect.Aff (Aff)
10+import Affjax as N
11+import Affjax.RequestBody as NQ
12+import Affjax.ResponseFormat as NR
13+import Affjax.StatusCode (StatusCode(..))
11import Data.Argonaut.Core (Json)
14import Data.Argonaut.Core (Json)
12−import Data.Argonaut.Decode.Combinators ((.?)) as J
13import Data.Argonaut.Decode.Class (decodeJson) as J
15import Data.Argonaut.Decode.Class (decodeJson) as J
16+import Data.Argonaut.Decode.Combinators ((.?)) as J
14import Data.Bifunctor (lmap)
17import Data.Bifunctor (lmap)
15−import Data.Either (Either(..))
18+import Data.Either (Either(..), either)
16import Data.Foldable as F
19import Data.Foldable as F
17import Data.List as L
20import Data.List as L
18import Data.Maybe (Maybe(..))
21import Data.Maybe (Maybe(..))
19import Data.Newtype (un)
22import Data.Newtype (un)
23+import Effect.Aff (Aff)
20import Lunapark.Error as LE
24import Lunapark.Error as LE
21import Lunapark.Types as LT
25import Lunapark.Types as LT
22−import Network.HTTP.Affjax.Response as NR
23−import Network.HTTP.Affjax.Request as NQ
24−import Network.HTTP.Affjax as N
25−import Network.HTTP.StatusCode (StatusCode(..))
26
26
27data EndpointPart
27data EndpointPart
28 = Session
28 = Session
@@ -168,12 +168,15 @@ printPart = case _ of
168 LongClick → "longclick"
168 LongClick → "longclick"
169 Flick → "flick"
169 Flick → "flick"
170
170
171+handleAPIError
172+ ∷ N.Response (Either N.ResponseFormatError Json)
171−handleAPIError ∷ N.AffjaxResponse Json → Either LE.Error Json
173+ → Either LE.Error Json
172handleAPIError r = case r.status of
174handleAPIError r = case r.status of
173 StatusCode 200 → lmap LE.unknownError do
175 StatusCode 200 → lmap LE.unknownError do
174− obj ← J.decodeJson r.response
176+ obj ← J.decodeJson =<< lmap N.printResponseFormatError r.body
175 obj J..? "value"
177 obj J..? "value"
176− code → Left $ LE.fromJson r.response
178+ code →
179+ Left $ either (LE.unknownError <<< N.printResponseFormatError) LE.fromJson r.body
177
180
178get ∷ String → Endpoint → Aff (Either LE.Error Json)
181get ∷ String → Endpoint → Aff (Either LE.Error Json)
179get uri ep = map handleAPIError $ N.get NR.json (uri <> print ep)
182get uri ep = map handleAPIError $ N.get NR.json (uri <> print ep)