Fix bad OpenAPI output when having functions with OUT/INOUT params

This commit is contained in:
steve-chavez
2017-10-09 10:45:17 -05:00
committed by Steve Chávez
parent e1cab584a3
commit 7a3f350f1c
3 changed files with 28 additions and 3 deletions
+4 -3
View File
@@ -19,7 +19,7 @@ import qualified Data.HashMap.Strict as M
import Data.List (elemIndex)
import Data.Maybe (fromJust)
import Data.Text (split, strip,
breakOn, dropAround)
breakOn, dropAround, splitOn)
import qualified Data.Text as T
import qualified Hasql.Session as H
import PostgREST.Types
@@ -120,11 +120,12 @@ decodeProcs =
addName pd = (pdName pd, pd)
parseArgs :: Text -> [PgArg]
parseArgs = mapMaybe (parseArg . strip) . split (==',')
parseArgs = mapMaybe parseArg . filter (not . isPrefixOf "OUT" . toS) . map strip . split (==',')
parseArg :: Text -> Maybe PgArg
parseArg a =
let (body, def) = breakOn " DEFAULT " a
let arg = lastDef "" $ splitOn "INOUT " a
(body, def) = breakOn " DEFAULT " arg
(name, typ) = breakOn " " body in
if T.null typ
then Nothing