aboutsummaryrefslogtreecommitdiffstats
path: root/backend/lib/ACMS/API/REST.hs
diff options
context:
space:
mode:
authorLibravatar Alexander Foremny <aforemny@posteo.de>2025-02-19 17:05:11 +0100
committerLibravatar Alexander Foremny <aforemny@posteo.de>2025-02-19 19:26:11 +0100
commitc36c4cf37737ba972482a34c8df2b61a541e7f0a (patch)
tree5682b53cd5b9d03fa56a4a11ba12f4916dd69ea3 /backend/lib/ACMS/API/REST.hs
parent09809ae4df9ea2536bb6d9d6295cd3fdfd357945 (diff)
add `acms query`
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