alex-tan/postgrest-queries/2.2.2

NOTE: the latest version is 7.2.0

Postgrest.Queries

Types

An individual postgrest parameter.

A collection of parameters that make up a postgrest request.

A type representing which attributes and resources you want to select.

A type to specify whether you want an order to be ascending or descending.

Select

A constructor for the select parameter.

P.select
    [ P.attribute "id"
    , P.attribute "title"
    , P.resource "user" <|
        P.attributes
            [ "email"
            , "name"
            ]
    ]

When you want to select all attributes. This is only useful when used to select attributes of a resource or override default parameters in another function since postgrest returns all attributes by default.

When you want to select a certain column.

attributes : List String -> List PostgrestSelectable

Shorthand for attributes, when you don't need to specify nested resources:

-- Short version
attributes [ "id" "name" ]


-- Long version
[ attribute "id"
, attribute "name"
]

When you want to select a nested resource.

Converting/combining into something usable

combineParams : PostgrestParams -> PostgrestParams -> PostgrestParams

Takes a default set of params and a custom set of params and prefers the second set. Useful when you're constructing reusable functions that make similar queries.

normalizeParams : PostgrestParams -> List ( String, String )

Takes PostgrestParams and returns the parameters as a list of (Key, Value) strings.

toQueryString : PostgrestParams -> String

Takes PostgrestParams and returns a query string such as foo=eq.bar&baz=is.true

Param

param : String -> PostgrestClause -> PostgrestParam

A constructor for an individual postgrest parameter.

param "name" (eq (string "John"))

Conditions

eq : PostgrestValue -> PostgrestClause

Used to indicate you need a column to be equal to a certain value.

gt : Float -> PostgrestClause

Used to indicate you need a column to be greater than a certain value.

gte : Float -> PostgrestClause

Used to indicate you need a column to be greater than or equal than a certain value.

inList : (a -> PostgrestValue) -> List a -> PostgrestClause

Used to indicate you need a column to be within a certain list of values.

A constructor for the limit parameter.

limit 10
lt : Float -> PostgrestClause

Used to indicate you need a column to be less than a certain value.

lte : Float -> PostgrestClause

Used to indicate you need a column to be less than or equal than a certain value.

neq : PostgrestValue -> PostgrestClause

Used to indicate you need a column to be not equal to a certain value.

Join multiple conditions together with or.

Join multiple conditions together with and.

true : PostgrestClause

When you need a column value to be true

false : PostgrestClause

When you need a column value to be false

value : PostgrestValue -> PostgrestClause

When you don't want to use a specific type after the equals sign in the query, you can use value to set anything you want.

Values

string : String -> PostgrestValue

Normalize a string into a postgrest value.

int : Int -> PostgrestValue

Normalize an int into a postgrest value.

list : List PostgrestValue -> PostgrestValue

This is available if you need it, but more likely you'll want to use inList.

Order

A constructor for the limit parameter.

order (asc "name")


order (desc "name")
asc : String -> ColumnOrder

Used in combination with order to sort results ascending.

desc : String -> ColumnOrder

Used in combination with order to sort results descending.