Codat.QueryBuilder (codat v1.0.0)

Copy Markdown View Source

Builder for Codat's query filter language.

Example

import Codat.QueryBuilder

query =
  where("status", :eq, "Open")
  |> and_where("amountDue", :gt, 0)
  |> and_where("customerRef.companyName", :contains, "Acme")
  |> to_query_string()
# => "status=Open&&amountDue>0&&customerRef.companyName~Acme"

Summary

Functions

Converts a keyword list or map to a query string using equality filters.

Returns all supported operator atoms.

Converts a query struct to the Codat query string format.

Starts a query with the given equality filter.

Types

clause()

@type clause() :: {String.t(), operator(), term()}

combinator()

@type combinator() :: :and | :or

operator()

@type operator() :: :eq | :neq | :gt | :gte | :lt | :lte | :contains

t()

@opaque t()

Functions

and_where(query, field, operator, value)

@spec and_where(t(), String.t(), operator(), term()) :: t()

Appends an AND clause.

from_map(pairs)

@spec from_map(keyword() | map()) :: String.t()

Converts a keyword list or map to a query string using equality filters.

operators()

@spec operators() :: [operator()]

Returns all supported operator atoms.

or_where(query, field, operator, value)

@spec or_where(t(), String.t(), operator(), term()) :: t()

Appends an OR clause.

to_query_string(query_builder)

@spec to_query_string(t()) :: String.t()

Converts a query struct to the Codat query string format.

where(field, operator, value)

@spec where(String.t(), operator(), term()) :: t()

Starts a query with the given equality filter.