{-| Module : PostgREST.Common Description : Common helper functions. -} module PostgREST.Private.Common where import Data.Maybe import qualified Hasql.Decoders as HD import qualified Hasql.Encoders as HE import Protolude column :: HD.Value a -> HD.Row a column = HD.column . HD.nonNullable nullableColumn :: HD.Value a -> HD.Row (Maybe a) nullableColumn = HD.column . HD.nullable element :: HD.Value a -> HD.Array a element = HD.element . HD.nonNullable param :: HE.Value a -> HE.Params a param = HE.param . HE.nonNullable arrayParam :: HE.Value a -> HE.Params [a] arrayParam = param . HE.array . HE.dimension foldl' . HE.element . HE.nonNullable