github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/web/elm/src/Concourse/BuildStatus.elm (about) 1 module Concourse.BuildStatus exposing 2 ( BuildStatus(..) 3 , decodeBuildStatus 4 , encodeBuildStatus 5 , isBad 6 , isRunning 7 , ordering 8 , show 9 ) 10 11 import Json.Decode 12 import Json.Encode 13 import Ordering exposing (Ordering) 14 15 16 type BuildStatus 17 = BuildStatusPending 18 | BuildStatusStarted 19 | BuildStatusSucceeded 20 | BuildStatusFailed 21 | BuildStatusErrored 22 | BuildStatusAborted 23 24 25 ordering : Ordering BuildStatus 26 ordering = 27 Ordering.explicit 28 [ BuildStatusFailed 29 , BuildStatusErrored 30 , BuildStatusAborted 31 , BuildStatusSucceeded 32 , BuildStatusPending 33 ] 34 35 36 show : BuildStatus -> String 37 show status = 38 case status of 39 BuildStatusPending -> 40 "pending" 41 42 BuildStatusStarted -> 43 "started" 44 45 BuildStatusSucceeded -> 46 "succeeded" 47 48 BuildStatusFailed -> 49 "failed" 50 51 BuildStatusErrored -> 52 "errored" 53 54 BuildStatusAborted -> 55 "aborted" 56 57 58 encodeBuildStatus : BuildStatus -> Json.Encode.Value 59 encodeBuildStatus = 60 show >> Json.Encode.string 61 62 63 decodeBuildStatus : Json.Decode.Decoder BuildStatus 64 decodeBuildStatus = 65 Json.Decode.string 66 |> Json.Decode.andThen 67 (\status -> 68 case status of 69 "pending" -> 70 Json.Decode.succeed BuildStatusPending 71 72 "started" -> 73 Json.Decode.succeed BuildStatusStarted 74 75 "succeeded" -> 76 Json.Decode.succeed BuildStatusSucceeded 77 78 "failed" -> 79 Json.Decode.succeed BuildStatusFailed 80 81 "errored" -> 82 Json.Decode.succeed BuildStatusErrored 83 84 "aborted" -> 85 Json.Decode.succeed BuildStatusAborted 86 87 unknown -> 88 Json.Decode.fail <| "unknown build status: " ++ unknown 89 ) 90 91 92 isRunning : BuildStatus -> Bool 93 isRunning status = 94 case status of 95 BuildStatusPending -> 96 True 97 98 BuildStatusStarted -> 99 True 100 101 _ -> 102 False 103 104 105 isBad : BuildStatus -> Bool 106 isBad status = 107 case status of 108 BuildStatusPending -> 109 False 110 111 BuildStatusStarted -> 112 False 113 114 BuildStatusSucceeded -> 115 False 116 117 BuildStatusFailed -> 118 True 119 120 BuildStatusErrored -> 121 True 122 123 BuildStatusAborted -> 124 False