diff options
Diffstat (limited to 'backend/lib/ACMS/API/REST.hs')
-rw-r--r-- | backend/lib/ACMS/API/REST.hs | 50 |
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 |