aboutsummaryrefslogtreecommitdiffstats
path: root/backend/lib/ACMS/API/REST.hs
diff options
context:
space:
mode:
Diffstat (limited to 'backend/lib/ACMS/API/REST.hs')
-rw-r--r--backend/lib/ACMS/API/REST.hs50
1 files changed, 2 insertions, 48 deletions
diff --git a/backend/lib/ACMS/API/REST.hs b/backend/lib/ACMS/API/REST.hs
index baf9adb..6cd2982 100644
--- a/backend/lib/ACMS/API/REST.hs
+++ b/backend/lib/ACMS/API/REST.hs
@@ -2,22 +2,10 @@
module ACMS.API.REST where
-#ifndef ghcjs_HOST_OS
-import Network.HTTP.Simple
-import Data.String (IsString(fromString))
-#else
-import Data.ByteString.Lazy.UTF8 qualified as LB
-import Data.ByteString qualified as B
-import Data.Maybe
-import Data.String
-import JavaScript.Web.XMLHttpRequest
-import Miso.String qualified as J
-#endif
-import Control.Monad.Catch (MonadThrow)
+import ACMS.API.Fetch
import Data.Aeson qualified as A
-import Data.ByteString.Lazy.Char8 qualified as LB
import Data.Function ((&))
-import Miso (JSM)
+import Data.String (IsString (fromString))
import Miso.String (MisoString)
restRequest :: String -> Request
@@ -43,37 +31,3 @@ createCollection collection =
& setRequestBodyLBS (A.encode (A.toJSON collection))
& fetch
>>= A.throwDecode
-
-class (MonadThrow m) => APIMonad m where
- fetch :: Request -> m LB.ByteString
-
-instance APIMonad JSM where
- fetch req = LB.fromStrict . getResponseBody <$> httpBS req
-
-#ifdef ghcjs_HOST_OS
-httpBS :: Request -> JSM (Response B.ByteString)
-httpBS req = xhrByteString req
-
-instance IsString Request where
- fromString uri =
- Request
- { reqMethod = GET,
- reqURI = J.pack uri,
- reqLogin = Nothing,
- reqHeaders = [],
- reqWithCredentials = False,
- reqData = NoData
- }
-
-setRequestMethod :: B.ByteString -> Request -> Request
-setRequestMethod "POST" req = req {reqMethod = POST}
-
-setRequestBodyLBS :: LB.ByteString -> Request -> Request
-setRequestBodyLBS body req = req {reqData = StringData (J.pack (LB.toString body))}
-
-getResponseBody :: Response B.ByteString -> B.ByteString
-getResponseBody = fromMaybe "" . contents
-#else
-instance APIMonad IO where
- fetch req = LB.fromStrict . getResponseBody <$> httpBS req
-#endif