Safe Haskell | None |
---|---|
Language | Haskell2010 |
PostgREST.Types
- data ContentType
- data ApiRequestError
- data DbStructure = DbStructure {
- dbTables :: [Table]
- dbColumns :: [Column]
- dbRelations :: [Relation]
- dbPrimaryKeys :: [PrimaryKey]
- dbProcs :: HashMap Text ProcDescription
- pgVersion :: PgVersion
- data PgArg = PgArg {}
- data PgType
- data RetType
- data ProcVolatility
- data ProcDescription = ProcDescription {
- pdName :: Text
- pdDescription :: Maybe Text
- pdArgs :: [PgArg]
- pdReturnType :: RetType
- pdVolatility :: ProcVolatility
- type Schema = Text
- type TableName = Text
- type SqlQuery = Text
- type SqlFragment = Text
- type RequestBody = ByteString
- data Table = Table {}
- newtype ForeignKey = ForeignKey {}
- data Column = Column {
- colTable :: Table
- colName :: Text
- colDescription :: Maybe Text
- colPosition :: Int32
- colNullable :: Bool
- colType :: Text
- colUpdatable :: Bool
- colMaxLen :: Maybe Int32
- colPrecision :: Maybe Int32
- colDefault :: Maybe Text
- colEnum :: [Text]
- colFK :: Maybe ForeignKey
- type Synonym = (Column, Column)
- data PrimaryKey = PrimaryKey {}
- data OrderDirection
- data OrderNulls
- data OrderTerm = OrderTerm {}
- data QualifiedIdentifier = QualifiedIdentifier {}
- data RelationType
- data Relation = Relation {}
- newtype PayloadJSON = PayloadJSON (Vector Object)
- unPayloadJSON :: PayloadJSON -> Vector Object
- data Proxy = Proxy {}
- type Operator = Text
- operators :: HashMap Operator SqlFragment
- ftsOperators :: HashMap Operator SqlFragment
- data OpExpr = OpExpr Bool Operation
- data Operation
- type Language = Text
- type SingleVal = Text
- type ListVal = [Text]
- data LogicOperator
- data LogicTree
- type FieldName = Text
- type JsonPath = [Text]
- type Field = (FieldName, Maybe JsonPath)
- type Alias = Text
- type Cast = Text
- type NodeName = Text
- type RpcQParam = (Text, Text)
- newtype GucHeader = GucHeader (Text, Text)
- toHeaders :: [GucHeader] -> [Header]
- type RelationDetail = Text
- type SelectItem = (Field, Maybe Cast, Maybe Alias, Maybe RelationDetail)
- type EmbedPath = [Text]
- data Filter = Filter {}
- data ReadQuery = Select {}
- data MutateQuery
- type ReadNode = (ReadQuery, (NodeName, Maybe Relation, Maybe Alias, Maybe RelationDetail))
- type ReadRequest = Tree ReadNode
- type MutateRequest = MutateQuery
- data DbRequest
- toHeader :: ContentType -> Header
- toMime :: ContentType -> ByteString
- data PgVersion = PgVersion {}
- sourceCTEName :: SqlFragment
Documentation
data ContentType Source #
Enumeration of currently supported response content types
Constructors
CTApplicationJSON | |
CTTextCSV | |
CTOpenAPI | |
CTSingularJSON | |
CTOctetStream | |
CTAny | |
CTOther ByteString |
Instances
data ApiRequestError Source #
Constructors
ActionInappropriate | |
InvalidBody ByteString | |
InvalidRange | |
ParseRequestError Text Text | |
UnknownRelation | |
NoRelationBetween Text Text | |
UnsupportedVerb |
Instances
data DbStructure Source #
Constructors
DbStructure | |
Fields
|
Instances
Constructors
Scalar QualifiedIdentifier | |
Composite QualifiedIdentifier |
data ProcVolatility Source #
Instances
data ProcDescription Source #
Constructors
ProcDescription | |
Fields
|
Instances
type SqlFragment = Text Source #
type RequestBody = ByteString Source #
Constructors
Table | |
Fields
|
Constructors
Column | |
Fields
|
data OrderDirection Source #
Instances
Constructors
OrderTerm | |
Fields |
data RelationType Source #
Instances
The name Relation
here is used with the meaning
"What is the relation between the current node and the parent node".
It has nothing to do with PostgreSQL referring to tables/views as relations.
Constructors
Relation | |
newtype PayloadJSON Source #
An array of JSON objects that has been verified to have the same keys in every object
Constructors
PayloadJSON (Vector Object) |
Instances
unPayloadJSON :: PayloadJSON -> Vector Object Source #
Constructors
Proxy | |
data LogicOperator Source #
Instances
Boolean logic expression tree e.g. "and(name.eq.N,or(id.eq.1,id.eq.2))" is:
And / name.eq.N Or / id.eq.1 id.eq.2
Custom guc header, it's obtained by parsing the json in a: `SET LOCAL "response.headers" = '[{Set-Cookie: ".."}]'
type RelationDetail = Text Source #
This type will hold information about which particular Relation
between two tables to choose when there are multiple ones.
Specifically, it will contain the name of the foreign key or the join table in many to many relations.
type SelectItem = (Field, Maybe Cast, Maybe Alias, Maybe RelationDetail) Source #
type EmbedPath = [Text] Source #
Path of the embedded levels, e.g "clients.projects.name=eq.." gives Path ["clients", "projects"]
Constructors
Select | |
type ReadRequest = Tree ReadNode Source #
type MutateRequest = MutateQuery Source #
Constructors
DbRead ReadRequest | |
DbMutate MutateRequest |
toHeader :: ContentType -> Header Source #
Convert from ContentType to a full HTTP Header
toMime :: ContentType -> ByteString Source #
Convert from ContentType to a ByteString representing the mime type