add CLI draft
This commit is contained in:
33
cli/app/API/Collection.hs
Normal file
33
cli/app/API/Collection.hs
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user