forked from loafle/openapi-generator-original
* [elm] fix empty operation exception (#3256) * [haskell-servant] fix empty operation type (#3256) * [elm][haskell-servant] update samples
37 lines
694 B
Elm
37 lines
694 B
Elm
module DateTime exposing (DateTime, decoder, encode, toString)
|
|
|
|
import Iso8601
|
|
import Json.Decode as Decode exposing (Decoder)
|
|
import Json.Encode as Encode
|
|
import Result
|
|
import Time
|
|
|
|
|
|
type alias DateTime =
|
|
Time.Posix
|
|
|
|
|
|
decoder : Decoder DateTime
|
|
decoder =
|
|
Decode.string
|
|
|> Decode.andThen decodeIsoString
|
|
|
|
|
|
encode : DateTime -> Encode.Value
|
|
encode =
|
|
Encode.string << toString
|
|
|
|
|
|
decodeIsoString : String -> Decoder DateTime
|
|
decodeIsoString str =
|
|
case Iso8601.toTime str of
|
|
Result.Ok posix ->
|
|
Decode.succeed posix
|
|
|
|
Result.Err _ ->
|
|
Decode.fail <| "Invalid date: " ++ str
|
|
|
|
|
|
toString : DateTime -> String
|
|
toString =
|
|
Iso8601.fromTime |