diff options
Diffstat (limited to 'cli/app/API')
-rw-r--r-- | cli/app/API/Collection.hs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/cli/app/API/Collection.hs b/cli/app/API/Collection.hs new file mode 100644 index 0000000..89a5845 --- /dev/null +++ b/cli/app/API/Collection.hs @@ -0,0 +1,33 @@ +{-# 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 |