jamesrweb/elm-cqrs/5.0.1

NOTE: the latest version is 5.0.3

Cqrs.Query

{ headers : List Header
, timeout : Maybe Float
, tracker : Maybe String
, risky : Bool
}

Configuration for requests resulting in a Cmd

{ headers : List Header
, timeout : Maybe Float
, risky : Bool
}

Configuration for requests resulting in a Task

type alias RequestSettings data error msg =
{ defaultError : error
, toData : Decoder data
, toError : Decoder error
, toMsg : QueryResponse error data -> msg
, url : String
}

Configuration settings for a request

type alias RequestWithConfigurationSettings data error msg =
{ config : StandardRequestConfiguration
, defaultError : error
, toData : Decoder data
, toError : Decoder error
, toMsg : QueryResponse error data -> msg
, url : String
}

Configuration settings for a requestWithConfig

type alias RequestTaskSettings data error =
{ defaultError : error
, toData : Decoder data
, toError : Decoder error
, url : String
}

Configuration settings for a requestTask

type alias RequestTaskWithConfigurationSettings data error =
{ config : TaskRequestConfiguration
, defaultError : error
, toData : Decoder data
, toError : Decoder error
, url : String
}

Configuration settings for a requestTaskWithConfig

type QueryRequest data error msg
= Request (RequestSettings data error msg)
| RequestWithConfig
(RequestWithConfigurationSettings data error msg)
| Task (RequestTaskSettings data error)
| TaskWithConfig
(RequestTaskWithConfigurationSettings data error)

Represents the possible types of query which can be executed depending on your needs.

type QueryResponse error data

Represents the possible states of a query.

HTTP

request : RequestSettings data error msg -> Cmd msg

Sends a query to the given URL and returns a Cmd for the given msg containing the parsed QueryResponse error data.

requestWithConfiguration : RequestWithConfigurationSettings data error msg -> Cmd msg

Similar to request but a StandardRequestConfig can be passed in for cases where customisation of the request headers, etc are desired.

RequestTaskSettings data error
-> Task () (QueryResponse error data)

Sends a query to the given URL and returns a Task which will contain the parsed QueryResponse error data.

RequestTaskWithConfigurationSettings data error
-> Task () (QueryResponse error data)

Similar to requestTask but a TaskRequestConfig can be passed in for cases where customisation of the request headers, etc are desired.

Constructors

succeed : data -> QueryResponse error data

Constructs the Data variant of a QueryResponse error data.

This is useful for testing how your UI will respond to the happy path, without actually sending a query, for example.

fail : error -> QueryResponse error data

Constructs the Error variant of a QueryResponse error data.

This is useful for testing how your UI will respond to the sad path, without actually sending a query, for example.

fromResult : Result error data -> QueryResponse error data

Converts a Result error data to a QueryResponse error data

error
-> WebData (QueryResponse error data)
-> QueryResponse error data

Converts a given WebData (QueryResponse issue data) into a QueryResponse error data.

State

data : QueryResponse error data -> Maybe data

If a given QueryResponse error data was successful, the data it contains will be returned.

data (Data []) --> Just []


data (Error "reason") --> Nothing
reason : QueryResponse error data -> Maybe error

If a given QueryResponse error data was unsuccessful, the reason for the failure will be returned.

reason (Data []) --> Nothing


reason (Error "reason") --> Just "reason"

Mappers

map :
(data -> nextData)
-> QueryResponse error data
-> QueryResponse error nextData

Maps the Data variant of a given QueryResponse error data.

(error -> nextError)
-> QueryResponse error data
-> QueryResponse nextError data

Maps the Error variant of a given QueryResponse error data.

(error -> nextError)
-> (data -> nextData)
-> QueryResponse error data
-> QueryResponse nextError nextData

Maps both the Data and the Error variant of a given QueryResponse error data.

unwrap : value -> (data -> value) -> QueryResponse error data -> value

Convert a QueryResponse error data to a value by applying a function if the QueryResponse error data is a Data variant or using the provided default value if it is an Error variant.

unpack : (error -> value) -> (data -> value) -> QueryResponse error data -> value

Convert a QueryResponse error data to a value by applying either the first function if the QueryResponse error data is an Error variant or the second function if the QueryResponse error data is a Data variant.

partition : List (QueryResponse error data) -> ( List data, List error )

Partitions a series of QueryResponse error data instances into a tuple of successful and unsuccessful responses.

merge : QueryResponse value value -> value

When a given QueryResponse error data is actually in the form QueryResponse value value then we can return the underlying value from either state. This is especially useful when the error and value have been mapped to domain types.

error
-> (data -> Bool)
-> QueryResponse error data
-> QueryResponse error data

Filter a given QueryResponse error data if it is in the Data variant and should the predicate not pass, map to a Error variant with the given error. Useful for error value mapping within a given domain.

toResult : QueryResponse error data -> Result error data

Converts a QueryResponse error data to a Result error data

toMaybe : QueryResponse error data -> Maybe data

Converts a QueryResponse error data to a Maybe data

Helpers

withDefault : data -> QueryResponse error data -> data

Provides a default case for a QueryResponse error data in place of the value held within the Error variant.

succeeded : QueryResponse error data -> Bool

Checks if a given QueryResponse error data is a Data variant.

succeeded (Data []) --> True


succeeded (Error "reason") --> False
failed : QueryResponse error data -> Bool

Checks if a given QueryResponse error data is an Error variant.

failed (Data []) --> False


failed (Error "reason") --> True

Codec

decoder : Decoder data -> Decoder error -> Decoder (QueryResponse error data)

Decodes a given payload into a QueryResponse error data.