driebit / elm-ginger / Ginger.Request

Get

resourceById : (Result Http.Error (Ginger.Resource.ResourceWith Ginger.Resource.Edges) -> msg) -> Ginger.Id.ResourceId -> Platform.Cmd.Cmd msg

Request a resource by ResourceId

resourceByPath : (Result Http.Error (Ginger.Resource.ResourceWith Ginger.Resource.Edges) -> msg) -> String -> Platform.Cmd.Cmd msg

Request a resource by its page_path

resourceByName : (Result Http.Error (Ginger.Resource.ResourceWith Ginger.Resource.Edges) -> msg) -> String -> Platform.Cmd.Cmd msg

Request a resource by its unique name

Delete

deleteResource : (Result Http.Error () -> msg) -> Ginger.Id.ResourceId -> Platform.Cmd.Cmd msg

Delete a resource by ResourceId

Edge

postEdge : { from : Ginger.Id.ResourceId, predicate : Ginger.Predicate.Predicate, to : Ginger.Id.ResourceId } -> Task Http.Error ()

deleteEdge : { from : Ginger.Id.ResourceId, predicate : Ginger.Predicate.Predicate, to : Ginger.Id.ResourceId } -> Task Http.Error ()

File

uploadFile : File -> Task Http.Error Ginger.Id.ResourceId

uploadFileAndPostEdge : { from : Ginger.Id.ResourceId, predicate : Ginger.Predicate.Predicate, file : File } -> Task Http.Error (Ginger.Resource.ResourceWith Ginger.Resource.Edges)

Search

search : (Result Http.Error (SearchResult (Ginger.Resource.ResourceWith Ginger.Resource.Edges)) -> msg) -> List QueryParam -> Platform.Cmd.Cmd msg

Request.search GotEvents
    [ Request.Upcoming
    , Request.HasCategory Event
    , Request.SortBy Request.StartDate Request.Asc
    ]

searchLocation : (Result Http.Error (SearchResult Ginger.Resource.Extra.Location) -> msg) -> List QueryParam -> Platform.Cmd.Cmd msg

Request.searchLocation GotLocations
    [ Request.HasCategory Person ]


type alias SearchResult a =
{ results : List a
, facets : Json.Decode.Value
, total : Basics.Int 
}


type QueryParam
    = HasContentGroup String
    | ExcludeCategory Ginger.Category.Category
    | Facet String
    | Filter String Operator String
    | HasCategory Ginger.Category.Category
    | HasObjectId Ginger.Id.ResourceId
    | HasObjectName String
    | HasSubjectId Ginger.Id.ResourceId
    | HasSubjectName String
    | IsUnfinished
    | IsUpcoming
    | Limit Basics.Int
    | Offset Basics.Int
    | PromoteCategory Ginger.Category.Category
    | SortBy SortField Ordering
    | Text String
    | SearchType String
    | Custom String String

Some of these params only work if mod_elasticsearch is enabled


type Ordering
    = Asc
    | Desc


type SortField
    = PublicationDate
    | StartDate


type Operator
    = EQ
    | LTE
    | LT
    | GT
    | GTE
    | MatchPhrase

queryParamsToBuilder : List QueryParam -> List Url.Builder.QueryParameter

Convert this modules QueryParm to elm/url QueryParameter values to use with Url.Builder.