Perform queries to get data from tables. The CLI gives you functions to perform type-safe queries, and this module helps you actually turn them into Cmds.
The Query
type. It's only exposed so that the CLI can have access to it.
You shouldn't construct it by hand.
send : (Result Http.Error (Response response) -> msg) -> Query response -> Platform.Cmd.Cmd msg
Send a Query to EOSIO.
You shouldn't need to construct a Query by hand. Instead, use functions generated by the CLI. They live in the Table.Query module.
Some parameters of the query are defined when running the CLI (like baseUrl
).
Others can be modified with functions like withLimit and
withBaseUrl (in case you need to override it).
This returns a Response, since there may be pagination in the result. If you want to paginate, keep the Cursor returned in the Response and use withLowerBound or withUpperBound in the next query.
import Eos.Query
import Http
import Table
import Table.Query
type Msg
= GotAccountData (Result Http.Error (Eos.Query.Response Table.Accounts))
queryAccounts : Cmd Msg
queryAccounts =
Table.Query.accounts { scope = "henriquebuss" }
|> Eos.Query.withLimit 20
|> Eos.Query.send GotAccountData
{ hasMore : Basics.Bool
, nextCursor : Cursor
, result : List response
}
A response from a Query. It contains the results, and also
pagination data. You can check if there is more data to be fetched with the
hasMore
field. If there is, you can use the nextCursor
field to fetch the
next page of data with withLowerBound or
withUpperBound.
withBaseUrl : String -> Query response -> Query response
Redefine the base url to send a Query. This is already defined when running the CLI, so you shouldn't need this function often.
withLimit : Basics.Int -> Query response -> Query response
Set how many entries to fetch on send.
withLowerBound : Cursor -> Query response -> Query response
Define the lower bound of a Query. This is used to paginate the results. You can get a Cursor from a Response, which you can get with send.
withUpperBound : Cursor -> Query response -> Query response
Define the upper bound of a Query. This is used to paginate the results. You can get a Cursor from a Response, which you can get with send.
withReverse : Basics.Bool -> Query response -> Query response
Define if the Query results should be reversed.
Used to set the lower bound or upper bound with withLowerBound or withUpperBound. You can get one of these from send.
The Index to use when sending a Query.
map : (response -> mappedResponse) -> Query response -> Query mappedResponse
Map the response of a Query. This is here so the CLI can use it. You probably shouldn't need to use it.