From 35bf45a81da20d782a8a654703eca14543e25def Mon Sep 17 00:00:00 2001 From: Alexander Foremny Date: Fri, 11 Oct 2024 14:17:33 +0200 Subject: add CLI draft --- cli/app/API/Collection.hs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 cli/app/API/Collection.hs (limited to 'cli/app/API') 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 -- cgit v1.2.3