Files
acms/cli/app/API/Collection.hs

34 lines
866 B
Haskell
Raw Normal View History

2024-10-11 14:17:33 +02:00
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE ViewPatterns #-}
module API.Collection where
import Data.Aeson qualified as A
import Data.Aeson.KeyMap qualified as AM
import Data.Text qualified as T
import Process.Shell (Quotable (..), sh)
import Debug.Trace
insert :: T.Text -> T.Text -> A.Object -> IO T.Text
insert
collectionName
fileName
( traceShowId -> AM.insert "$fileName" (A.String fileName) -> traceShowId ->
A.Object -> traceShowId -> contents
) =
{- TODO REST/ CRUD API
[sh|
curl -fsS http://localhost:8081/collections/#{collectionName}/#{filePath} \
--data #{contents}
\|]-}
[sh|
set -efux
curl -fsS http://localhost:8081 \
--data "INSERT "'#{contents}'" INTO #{collectionName}"
|]
-- TODO sh
instance Quotable A.Value where
toString = toString . A.encode