1module Status.Api exposing (clusterStatusToString, getStatus)
2
3import Data.AlertmanagerStatus exposing (AlertmanagerStatus)
4import Data.ClusterStatus exposing (Status(..))
5import Utils.Api exposing (get, send)
6import Utils.Types exposing (ApiData)
7
8
9getStatus : String -> (ApiData AlertmanagerStatus -> msg) -> Cmd msg
10getStatus apiUrl msg =
11    let
12        url =
13            String.join "/" [ apiUrl, "status" ]
14
15        request =
16            get url Data.AlertmanagerStatus.decoder
17    in
18    Cmd.map msg <| send request
19
20
21clusterStatusToString : Status -> String
22clusterStatusToString status =
23    case status of
24        Ready ->
25            "ready"
26
27        Settling ->
28            "settling"
29
30        Disabled ->
31            "disabled"
32