all repos

onasty @ eab9b2ccfb37b6dac1c99ff93098fbf505a47f5a

a one-time notes service

onasty/web/src/Api.elm (view raw)

Olexandr Smirnov Olexandr Smirnov
ss2316544@gmail.com
web: button component; improve code consistency (#168)..., 10 months ago
1
module Api exposing (Error(..), Response(..), errorMessage, is404, isNotVerified)
2
3
import Http
4
import Json.Decode
5
6
7
type Response value
8
    = Loading
9
    | Success value
10
    | Failure Error
11
12
13
type Error
14
    = HttpError
15
        { message : String
16
        , reason : Http.Error
17
        }
18
    | JsonDecodeError
19
        { message : String
20
        , reason : Json.Decode.Error
21
        }
22
23
24
errorMessage : Error -> String
25
errorMessage error =
26
    case error of
27
        HttpError err ->
28
            err.message
29
30
        JsonDecodeError err ->
31
            err.message
32
33
34
is404 : Error -> Bool
35
is404 error =
36
    case error of
37
        HttpError { reason } ->
38
            reason == Http.BadStatus 404
39
40
        _ ->
41
            False
42
43
44
isNotVerified : Error -> Bool
45
isNotVerified error =
46
    case error of
47
        HttpError { reason, message } ->
48
            (reason == Http.BadStatus 400) && String.contains "user is not activated" message
49
50
        _ ->
51
            False