git.iko.soy/rowtype-yoga/purescript-lunapark
on main help sign in
Merge pull request #2 from slamdata/affjax-update

Updates for affjax 7.0

commitc00956ce4cc25c8039553207d240fcc09de54dde authorChristoph Hegemann <kRITZCREEK@users.noreply.github.com> dateTue 14 Aug 2018, 14:41 (8 years ago) parentae981761ad6e7c
2 files changed+14−11
bower.json+1−1 src/Lunapark/Endpoint.purs+13−10
bower.json+1−1
@@ -27,7 +27,7 @@
2727 "purescript-xpath": "cryogenian/purescript-xpath#compiler/0.12",
2828 "purescript-argonaut-core": "^4.0.0",
2929 "purescript-argonaut-codecs": "^4.0.0",
30− "purescript-affjax": "^6.0.0",
30+ "purescript-affjax": "^7.0.0",
3131 "purescript-css": "^4.0.0",
3232 "purescript-node-fs-aff": "^6.0.0",
3333 "purescript-run": "cryogenian/purescript-run#compiler/0.12"
src/Lunapark/Endpoint.purs+13−10
@@ -7,22 +7,22 @@ module Lunapark.Endpoint where
77
88import Prelude
99
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(..))
1114import Data.Argonaut.Core (Json)
12−import Data.Argonaut.Decode.Combinators ((.?)) as J
1315import Data.Argonaut.Decode.Class (decodeJson) as J
16+import Data.Argonaut.Decode.Combinators ((.?)) as J
1417import Data.Bifunctor (lmap)
15−import Data.Either (Either(..))
18+import Data.Either (Either(..), either)
1619import Data.Foldable as F
1720import Data.List as L
1821import Data.Maybe (Maybe(..))
1922import Data.Newtype (un)
23+import Effect.Aff (Aff)
2024import Lunapark.Error as LE
2125import 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(..))
2626
2727data EndpointPart
2828 = Session
@@ -168,12 +168,15 @@ printPart = case _ of
168168 LongClick → "longclick"
169169 Flick → "flick"
170170
171−handleAPIError ∷ N.AffjaxResponse Json → Either LE.Error Json
171+handleAPIError
172+ ∷ N.Response (Either N.ResponseFormatError Json)
173+ → Either LE.Error Json
172174handleAPIError r = case r.status of
173175 StatusCode 200 → lmap LE.unknownError do
174− obj ← J.decodeJson r.response
176+ obj ← J.decodeJson =<< lmap N.printResponseFormatError r.body
175177 obj J..? "value"
176− code → Left $ LE.fromJson r.response
178+ code →
179+ Left $ either (LE.unknownError <<< N.printResponseFormatError) LE.fromJson r.body
177180
178181get ∷ String → Endpoint → Aff (Either LE.Error Json)
179182get uri ep = map handleAPIError $ N.get NR.json (uri <> print ep)