Include proc parama and their types in openapi
This commit is contained in:
@@ -16,7 +16,7 @@ import Control.Applicative
|
||||
import Data.List (elemIndex)
|
||||
import Data.Maybe (fromJust)
|
||||
import Data.Monoid
|
||||
import Data.Text (split)
|
||||
import Data.Text (split, strip)
|
||||
import qualified Hasql.Session as H
|
||||
import PostgREST.Types
|
||||
import Text.InterpolatedString.Perl6 (q)
|
||||
@@ -99,12 +99,21 @@ accessibleProcs :: H.Query Schema [(Text, ProcDescription)]
|
||||
accessibleProcs =
|
||||
H.statement sql (HE.value HE.text)
|
||||
(map addName <$> HD.rowsList (ProcDescription <$> HD.value HD.text
|
||||
<*> HD.value HD.text
|
||||
<*> HD.value HD.text)) True
|
||||
<*> (parseArgs <$> HD.value HD.text)
|
||||
<*> HD.value HD.text)) True
|
||||
where
|
||||
addName :: ProcDescription -> (Text, ProcDescription)
|
||||
addName pd = (pdName pd, pd)
|
||||
|
||||
parseArgs :: Text -> [(PgArgName, PgArgType)]
|
||||
parseArgs = mapMaybe list2pair
|
||||
. map (split (==' ') . strip)
|
||||
. split (==',')
|
||||
|
||||
list2pair :: [a] -> Maybe (a,a)
|
||||
list2pair (x:y:_) = Just (x,y)
|
||||
list2pair _ = Nothing
|
||||
|
||||
sql = [q|
|
||||
SELECT p.proname as "proc_name",
|
||||
pg_get_function_arguments(p.oid) as "args",
|
||||
|
||||
Reference in New Issue
Block a user