calions-app/jsonapi-http/1.4.2

Renamed to FabienHenon/jsonapi-http. It is published under that name, and new versions come out there.

Versions published as calions-app/jsonapi-http still install under that name. 8 versions of 9 come from the new location (see their notes). 1 version could not be recovered and cannot be installed.

Unavailable. Nobody can download this version any more, with elm or with the Lamdera compiler: github.com/FabienHenon/jsonapi-http exists but has no tag 1.4.2; Software Heritage has no tag 1.4.2 for it; no fork with tag 1.4.2 found (1 same-name repos checked); no cached copy. Use another version.

Details

Http.Error

The Http.Error module defines a new kind of http error related to json api

Definitions

= HttpError Error
| JsonApiError (List Error)
| CustomError String

You can have:

  • HttpError: a normal http error
  • JsonApiError: an error related to the json api specification
  • CustomError: a custom error
type alias ErrorConfig =
{ httpErrorToString : Error -> String
, errorClass : Maybe String
, detailClass : Maybe String
}

Configuration used to display a RequestError

  • httpErrortoString is the function used to display a string from an http error
  • errorClass is an additionnal class you can add to the main container of the error
  • detailClass is an additionnal class you can add to children of the main container of the error

Functions

displayError : ErrorConfig -> RequestError -> Html msg

Displays a RequestError. You must provide a configuration to be able to display correctly any kind of error.

Errors are displayed like this:

<span class="error">
    <span class "error-detail error-detail-username1">Error on username</span>
    <span class "error-detail error-detail-password2">Error on password</span>
</span>
getErrorForField : String -> List Error -> Maybe String

Returns the jsonapi error message for the given field name

Let's say you have the following json api error:

{
   "errors":[
      {
         "detail":"Password should be at least 8 character(s)",
         "source":{
            "pointer":"/data/attributes/password"
         },
         "title":"should be at least 8 character(s)"
      }
   ],
   "jsonapi":{
      "version":"1.0"
   }
}

You can get the detail error message "Password should be at least 8 character(s)" like this:

getErrorForField "password" error
getJsonApiErrors : RequestError -> List ( String, String )

Retuens a list of the json api errors or an empty list if there is no error.

Let's say you have the following json api errors:

{
   "errors":[
      {
         "detail":"Password should be at least 8 character(s)",
         "source":{
            "pointer":"/data/attributes/password"
         },
         "title":"should be at least 8 character(s)"
      },
      {
         "detail":"Username must no be empty",
         "source":{
            "pointer":"/data/attributes/username"
         },
         "title":"should not be empty"
      }
   ],
   "jsonapi":{
      "version":"1.0"
   }
}

Calling getJsonApiErrors errors will return:

[ ( "password", "Password should be at least 8 character(s)" )
, ( "username", "Username must no be empty" )
]