From c36c4cf37737ba972482a34c8df2b61a541e7f0a Mon Sep 17 00:00:00 2001 From: Alexander Foremny Date: Wed, 19 Feb 2025 17:05:11 +0100 Subject: add `acms query` --- backend/lib/ACMS/API/REST.hs | 50 ++------------------------------------------ 1 file changed, 2 insertions(+), 48 deletions(-) (limited to 'backend/lib/ACMS/API/REST.hs') 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 -- cgit v1.2.3