From 172448fa289d6210ff207e973f5a352f80fee35b Mon Sep 17 00:00:00 2001 From: Erik Timmers Date: Tue, 27 Nov 2018 06:47:06 +0100 Subject: [PATCH] Add support for UUIDs (#1516) And fix naming for `decode` functions. --- .../codegen/languages/ElmClientCodegen.java | 18 ++-- .../src/main/resources/elm/Byte.mustache | 6 +- .../src/main/resources/elm/DateOnly.mustache | 6 +- .../main/resources/elm/DateOnly018.mustache | 6 +- .../src/main/resources/elm/DateTime.mustache | 6 +- .../main/resources/elm/DateTime018.mustache | 6 +- .../resources/elm/elm-package018.mustache | 1 + .../src/main/resources/elm/elm.mustache | 3 + .../src/main/resources/elm/model.mustache | 2 +- .../resources/elm/modelTypeArray.mustache | 4 +- .../elm/modelTypeDiscriminator.mustache | 4 +- .../resources/elm/modelTypePrimitive.mustache | 4 +- .../main/resources/elm/recordEncoder.mustache | 4 +- .../client/petstore/elm-0.18/elm-package.json | 1 + samples/client/petstore/elm-0.18/src/Byte.elm | 6 +- .../elm-0.18/src/Data/ApiResponse.elm | 16 ++-- .../petstore/elm-0.18/src/Data/Category.elm | 14 ++-- .../petstore/elm-0.18/src/Data/Order_.elm | 34 +++----- .../client/petstore/elm-0.18/src/Data/Pet.elm | 34 +++----- .../client/petstore/elm-0.18/src/Data/Tag.elm | 14 ++-- .../petstore/elm-0.18/src/Data/User.elm | 26 +++--- .../client/petstore/elm-0.18/src/DateOnly.elm | 6 +- .../client/petstore/elm-0.18/src/DateTime.elm | 8 +- .../petstore/elm-0.18/src/Request/Pet.elm | 14 ++-- .../petstore/elm-0.18/src/Request/Store.elm | 6 +- .../petstore/elm-0.18/src/Request/User.elm | 14 ++-- samples/client/petstore/elm/elm.json | 3 + samples/client/petstore/elm/src/Byte.elm | 6 +- .../petstore/elm/src/Data/ApiResponse.elm | 16 ++-- .../client/petstore/elm/src/Data/Category.elm | 14 ++-- .../client/petstore/elm/src/Data/Order_.elm | 34 +++----- samples/client/petstore/elm/src/Data/Pet.elm | 36 ++++---- samples/client/petstore/elm/src/Data/Tag.elm | 14 ++-- samples/client/petstore/elm/src/Data/User.elm | 26 +++--- samples/client/petstore/elm/src/DateOnly.elm | 6 +- samples/client/petstore/elm/src/DateTime.elm | 8 +- .../client/petstore/elm/src/Request/Pet.elm | 78 ++++++++--------- .../client/petstore/elm/src/Request/Store.elm | 39 ++++----- .../client/petstore/elm/src/Request/User.elm | 83 +++++++++---------- 39 files changed, 276 insertions(+), 350 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java index ed9c8040d55..a06c7d02293 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java @@ -130,7 +130,8 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig { Arrays.asList( "Byte", "DateOnly", - "DateTime") + "DateTime", + "Uuid") ); instantiationTypes.clear(); @@ -153,6 +154,7 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig { typeMapping.put("ByteArray", "Byte"); typeMapping.put("file", "String"); typeMapping.put("binary", "String"); + typeMapping.put("UUID", "Uuid"); importMapping.clear(); @@ -675,31 +677,31 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig { private void addEncoderAndDecoder(final Map vendorExtensions, final String dataType, final DataTypeExposure dataTypeExposure) { final String baseName = org.openapitools.codegen.utils.StringUtils.camelize(dataType, true); - String encoderName; + String encodeName; String decoderName; switch (dataTypeExposure) { case EXPOSED: decoderName = "decoder"; - encoderName = "encoder"; + encodeName = "encode"; break; case INTERNAL: - encoderName = baseName + "Encoder"; + encodeName = "encode" + StringUtils.capitalize(baseName); decoderName = baseName + "Decoder"; break; case EXTERNAL: - encoderName = dataType + ".encoder"; + encodeName = dataType + ".encode"; decoderName = dataType + ".decoder"; break; case PRIMITIVE: - encoderName = "Encode." + baseName; + encodeName = "Encode." + baseName; decoderName = "Decode." + baseName; break; default: - encoderName = ""; + encodeName = ""; decoderName = ""; } if (!vendorExtensions.containsKey(ENCODER)) { - vendorExtensions.put(ENCODER, encoderName); + vendorExtensions.put(ENCODER, encodeName); } if (!vendorExtensions.containsKey(DECODER)) { vendorExtensions.put(DECODER, decoderName); diff --git a/modules/openapi-generator/src/main/resources/elm/Byte.mustache b/modules/openapi-generator/src/main/resources/elm/Byte.mustache index 6c80664aba1..d83623d9846 100644 --- a/modules/openapi-generator/src/main/resources/elm/Byte.mustache +++ b/modules/openapi-generator/src/main/resources/elm/Byte.mustache @@ -1,4 +1,4 @@ -module Byte exposing (Byte, decoder, encoder) +module Byte exposing (Byte, decoder, encode) import Json.Decode as Decode exposing (Decoder) import Json.Encode as Encode @@ -13,6 +13,6 @@ decoder = Decode.string -encoder : Byte -> Encode.Value -encoder model = +encode : Byte -> Encode.Value +encode model = Encode.string model diff --git a/modules/openapi-generator/src/main/resources/elm/DateOnly.mustache b/modules/openapi-generator/src/main/resources/elm/DateOnly.mustache index acd6cd44eb9..a31efc88c38 100644 --- a/modules/openapi-generator/src/main/resources/elm/DateOnly.mustache +++ b/modules/openapi-generator/src/main/resources/elm/DateOnly.mustache @@ -1,4 +1,4 @@ -module DateOnly exposing (DateOnly, decoder, encoder, toString) +module DateOnly exposing (DateOnly, decoder, encode, toString) import Iso8601 import Json.Decode as Decode exposing (Decoder) @@ -17,8 +17,8 @@ decoder = |> Decode.andThen decodeIsoString -encoder : DateOnly -> Encode.Value -encoder = +encode : DateOnly -> Encode.Value +encode = Encode.string << toString diff --git a/modules/openapi-generator/src/main/resources/elm/DateOnly018.mustache b/modules/openapi-generator/src/main/resources/elm/DateOnly018.mustache index 29abf6757ef..5874cf65d5e 100644 --- a/modules/openapi-generator/src/main/resources/elm/DateOnly018.mustache +++ b/modules/openapi-generator/src/main/resources/elm/DateOnly018.mustache @@ -1,4 +1,4 @@ -module DateOnly exposing (DateOnly, decoder, encoder, toString) +module DateOnly exposing (DateOnly, decoder, encode, toString) import Date import Date.Extra exposing (fromIsoString, toFormattedString) @@ -17,8 +17,8 @@ decoder = |> Decode.andThen decodeIsoString -encoder : DateOnly -> Encode.Value -encoder = +encode : DateOnly -> Encode.Value +encode = Encode.string << toString diff --git a/modules/openapi-generator/src/main/resources/elm/DateTime.mustache b/modules/openapi-generator/src/main/resources/elm/DateTime.mustache index d85fcee5fe3..7d4a5c642c1 100644 --- a/modules/openapi-generator/src/main/resources/elm/DateTime.mustache +++ b/modules/openapi-generator/src/main/resources/elm/DateTime.mustache @@ -1,4 +1,4 @@ -module DateTime exposing (DateTime, decoder, encoder, toString) +module DateTime exposing (DateTime, decoder, encode, toString) import Iso8601 import Json.Decode as Decode exposing (Decoder) @@ -17,8 +17,8 @@ decoder = |> Decode.andThen decodeIsoString -encoder : DateTime -> Encode.Value -encoder = +encode : DateTime -> Encode.Value +encode = Encode.string << toString diff --git a/modules/openapi-generator/src/main/resources/elm/DateTime018.mustache b/modules/openapi-generator/src/main/resources/elm/DateTime018.mustache index a07c912aecd..6a20f0482a1 100644 --- a/modules/openapi-generator/src/main/resources/elm/DateTime018.mustache +++ b/modules/openapi-generator/src/main/resources/elm/DateTime018.mustache @@ -1,4 +1,4 @@ -module DateTime exposing (DateTime, decoder, encoder, toString) +module DateTime exposing (DateTime, decoder, encode, toString) import Date import Date.Extra exposing (fromIsoString, toIsoString) @@ -17,8 +17,8 @@ decoder = |> Decode.andThen decodeIsoString -encoder : DateTime -> Encode.Value -encoder = +encode : DateTime -> Encode.Value +encode = Encode.string << toString diff --git a/modules/openapi-generator/src/main/resources/elm/elm-package018.mustache b/modules/openapi-generator/src/main/resources/elm/elm-package018.mustache index 6cc67985f73..6bd1cd88fa7 100644 --- a/modules/openapi-generator/src/main/resources/elm/elm-package018.mustache +++ b/modules/openapi-generator/src/main/resources/elm/elm-package018.mustache @@ -9,6 +9,7 @@ "exposed-modules": [], "dependencies": { "NoRedInk/elm-decode-pipeline": "3.0.0 <= v < 4.0.0", + "danyx23/elm-uuid": "2.0.2 <= v < 2.1.1", "elm-lang/core": "5.1.1 <= v < 6.0.0", "elm-lang/html": "2.0.0 <= v < 3.0.0", "elm-lang/http": "1.0.0 <= v < 2.0.0", diff --git a/modules/openapi-generator/src/main/resources/elm/elm.mustache b/modules/openapi-generator/src/main/resources/elm/elm.mustache index b8a06a11c17..e4ae0f4df15 100644 --- a/modules/openapi-generator/src/main/resources/elm/elm.mustache +++ b/modules/openapi-generator/src/main/resources/elm/elm.mustache @@ -7,6 +7,7 @@ "dependencies": { "direct": { "NoRedInk/elm-json-decode-pipeline": "1.0.0", + "danyx23/elm-uuid": "2.1.2", "elm/browser": "1.0.1", "elm/core": "1.0.2", "elm/html": "1.0.0", @@ -20,6 +21,8 @@ "elm/bytes": "1.0.5", "elm/file": "1.0.1", "elm/parser": "1.1.0", + "elm/random": "1.0.0", + "elm/regex": "1.0.0", "elm/virtual-dom": "1.0.2" } }, diff --git a/modules/openapi-generator/src/main/resources/elm/model.mustache b/modules/openapi-generator/src/main/resources/elm/model.mustache index a0868e90286..0e16b0ed345 100644 --- a/modules/openapi-generator/src/main/resources/elm/model.mustache +++ b/modules/openapi-generator/src/main/resources/elm/model.mustache @@ -1,6 +1,6 @@ {{>licenseInfo}} -module Data.{{classname}} exposing ({{#models}}{{#model}}{{classname}}{{#hasChildren}}(..){{/hasChildren}}{{#isEnum}}(..){{/isEnum}}{{^isEnum}}{{#vars}}{{#isEnum}}, {{vendorExtensions.elmCustomType}}(..){{/isEnum}}{{/vars}}{{/isEnum}}, decoder, encoder{{/model}}{{/models}}) +module Data.{{classname}} exposing ({{#models}}{{#model}}{{classname}}{{#hasChildren}}(..){{/hasChildren}}{{#isEnum}}(..){{/isEnum}}{{^isEnum}}{{#vars}}{{#isEnum}}, {{vendorExtensions.elmCustomType}}(..){{/isEnum}}{{/vars}}{{/isEnum}}, decoder, encode{{/model}}{{/models}}) {{>imports}}import Dict exposing (Dict) import Json.Decode as Decode exposing (Decoder) diff --git a/modules/openapi-generator/src/main/resources/elm/modelTypeArray.mustache b/modules/openapi-generator/src/main/resources/elm/modelTypeArray.mustache index a636dcce9f9..a265c68e098 100644 --- a/modules/openapi-generator/src/main/resources/elm/modelTypeArray.mustache +++ b/modules/openapi-generator/src/main/resources/elm/modelTypeArray.mustache @@ -7,6 +7,6 @@ decoder = Decode.list {{vendorExtensions.elmDecoder}} -encoder : {{classname}} -> Encode.Value -encoder items = +encode : {{classname}} -> Encode.Value +encode items = Encode.list {{#isElm018}}(List.map {{/isElm018}}{{vendorExtensions.elmEncoder}} items{{#isElm018}}){{/isElm018}} diff --git a/modules/openapi-generator/src/main/resources/elm/modelTypeDiscriminator.mustache b/modules/openapi-generator/src/main/resources/elm/modelTypeDiscriminator.mustache index 61c71765842..60652deca1b 100644 --- a/modules/openapi-generator/src/main/resources/elm/modelTypeDiscriminator.mustache +++ b/modules/openapi-generator/src/main/resources/elm/modelTypeDiscriminator.mustache @@ -22,8 +22,8 @@ decoder = Decode.fail <| "Trying to decode {{classname}}, but {{{discriminatorName}}} " ++ tag ++ " is not supported." -encoder : {{classname}} -> Encode.Value -encoder model = +encode : {{classname}} -> Encode.Value +encode model = case model of {{#mappedModels}} {{modelName}}Type subModel -> diff --git a/modules/openapi-generator/src/main/resources/elm/modelTypePrimitive.mustache b/modules/openapi-generator/src/main/resources/elm/modelTypePrimitive.mustache index 864bde60fe1..0eeb7df56fa 100644 --- a/modules/openapi-generator/src/main/resources/elm/modelTypePrimitive.mustache +++ b/modules/openapi-generator/src/main/resources/elm/modelTypePrimitive.mustache @@ -7,6 +7,6 @@ decoder = {{vendorExtensions.elmDecoder}} -encoder : {{classname}} -> Encode.Value -encoder = +encode : {{classname}} -> Encode.Value +encode = {{vendorExtensions.elmEncoder}} diff --git a/modules/openapi-generator/src/main/resources/elm/recordEncoder.mustache b/modules/openapi-generator/src/main/resources/elm/recordEncoder.mustache index af4815e0156..a30933a59d7 100644 --- a/modules/openapi-generator/src/main/resources/elm/recordEncoder.mustache +++ b/modules/openapi-generator/src/main/resources/elm/recordEncoder.mustache @@ -1,5 +1,5 @@ -encoder : {{#vendorExtensions.discriminatorName}}String -> {{/vendorExtensions.discriminatorName}}{{classname}} -> Encode.Value -encoder {{#vendorExtensions.discriminatorName}}tag {{/vendorExtensions.discriminatorName}}model = +encode : {{#vendorExtensions.discriminatorName}}String -> {{/vendorExtensions.discriminatorName}}{{classname}} -> Encode.Value +encode {{#vendorExtensions.discriminatorName}}tag {{/vendorExtensions.discriminatorName}}model = Encode.object {{#allVars}} {{#-first}}[{{/-first}}{{^-first}},{{/-first}} {{>recordFieldEncoder}} diff --git a/samples/client/petstore/elm-0.18/elm-package.json b/samples/client/petstore/elm-0.18/elm-package.json index 6cc67985f73..6bd1cd88fa7 100644 --- a/samples/client/petstore/elm-0.18/elm-package.json +++ b/samples/client/petstore/elm-0.18/elm-package.json @@ -9,6 +9,7 @@ "exposed-modules": [], "dependencies": { "NoRedInk/elm-decode-pipeline": "3.0.0 <= v < 4.0.0", + "danyx23/elm-uuid": "2.0.2 <= v < 2.1.1", "elm-lang/core": "5.1.1 <= v < 6.0.0", "elm-lang/html": "2.0.0 <= v < 3.0.0", "elm-lang/http": "1.0.0 <= v < 2.0.0", diff --git a/samples/client/petstore/elm-0.18/src/Byte.elm b/samples/client/petstore/elm-0.18/src/Byte.elm index 6c80664aba1..d83623d9846 100644 --- a/samples/client/petstore/elm-0.18/src/Byte.elm +++ b/samples/client/petstore/elm-0.18/src/Byte.elm @@ -1,4 +1,4 @@ -module Byte exposing (Byte, decoder, encoder) +module Byte exposing (Byte, decoder, encode) import Json.Decode as Decode exposing (Decoder) import Json.Encode as Encode @@ -13,6 +13,6 @@ decoder = Decode.string -encoder : Byte -> Encode.Value -encoder model = +encode : Byte -> Encode.Value +encode model = Encode.string model diff --git a/samples/client/petstore/elm-0.18/src/Data/ApiResponse.elm b/samples/client/petstore/elm-0.18/src/Data/ApiResponse.elm index 62dbfd4a145..f4120a09248 100644 --- a/samples/client/petstore/elm-0.18/src/Data/ApiResponse.elm +++ b/samples/client/petstore/elm-0.18/src/Data/ApiResponse.elm @@ -10,7 +10,7 @@ -} -module Data.ApiResponse exposing (ApiResponse, decoder, encoder) +module Data.ApiResponse exposing (ApiResponse, decoder, encode) import Dict exposing (Dict) import Json.Decode as Decode exposing (Decoder) @@ -21,9 +21,9 @@ import Json.Encode as Encode {-| Describes the result of uploading an image resource -} type alias ApiResponse = - { code : Maybe (Int) - , type_ : Maybe (String) - , message : Maybe (String) + { code : Maybe Int + , type_ : Maybe String + , message : Maybe String } @@ -35,14 +35,10 @@ decoder = |> optional "message" (Decode.nullable Decode.string) Nothing - -encoder : ApiResponse -> Encode.Value -encoder model = +encode : ApiResponse -> Encode.Value +encode model = Encode.object [ ( "code", Maybe.withDefault Encode.null (Maybe.map Encode.int model.code) ) , ( "type", Maybe.withDefault Encode.null (Maybe.map Encode.string model.type_) ) , ( "message", Maybe.withDefault Encode.null (Maybe.map Encode.string model.message) ) - ] - - diff --git a/samples/client/petstore/elm-0.18/src/Data/Category.elm b/samples/client/petstore/elm-0.18/src/Data/Category.elm index 3170fd318d9..a97f62791d9 100644 --- a/samples/client/petstore/elm-0.18/src/Data/Category.elm +++ b/samples/client/petstore/elm-0.18/src/Data/Category.elm @@ -10,7 +10,7 @@ -} -module Data.Category exposing (Category, decoder, encoder) +module Data.Category exposing (Category, decoder, encode) import Dict exposing (Dict) import Json.Decode as Decode exposing (Decoder) @@ -21,8 +21,8 @@ import Json.Encode as Encode {-| A category for a pet -} type alias Category = - { id : Maybe (Int) - , name : Maybe (String) + { id : Maybe Int + , name : Maybe String } @@ -33,13 +33,9 @@ decoder = |> optional "name" (Decode.nullable Decode.string) Nothing - -encoder : Category -> Encode.Value -encoder model = +encode : Category -> Encode.Value +encode model = Encode.object [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) ) , ( "name", Maybe.withDefault Encode.null (Maybe.map Encode.string model.name) ) - ] - - diff --git a/samples/client/petstore/elm-0.18/src/Data/Order_.elm b/samples/client/petstore/elm-0.18/src/Data/Order_.elm index 5f2ce9d1fb4..03de721decb 100644 --- a/samples/client/petstore/elm-0.18/src/Data/Order_.elm +++ b/samples/client/petstore/elm-0.18/src/Data/Order_.elm @@ -10,7 +10,7 @@ -} -module Data.Order_ exposing (Order_, Status(..), decoder, encoder) +module Data.Order_ exposing (Order_, Status(..), decoder, encode) import DateTime exposing (DateTime) import Dict exposing (Dict) @@ -22,12 +22,12 @@ import Json.Encode as Encode {-| An order for a pets from the pet store -} type alias Order_ = - { id : Maybe (Int) - , petId : Maybe (Int) - , quantity : Maybe (Int) - , shipDate : Maybe (DateTime) - , status : Maybe (Status) - , complete : Maybe (Bool) + { id : Maybe Int + , petId : Maybe Int + , quantity : Maybe Int + , shipDate : Maybe DateTime + , status : Maybe Status + , complete : Maybe Bool } @@ -37,7 +37,6 @@ type Status | Delivered - decoder : Decoder Order_ decoder = decode Order_ @@ -49,21 +48,18 @@ decoder = |> optional "complete" (Decode.nullable Decode.bool) (Just False) - -encoder : Order_ -> Encode.Value -encoder model = +encode : Order_ -> Encode.Value +encode model = Encode.object [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) ) , ( "petId", Maybe.withDefault Encode.null (Maybe.map Encode.int model.petId) ) , ( "quantity", Maybe.withDefault Encode.null (Maybe.map Encode.int model.quantity) ) - , ( "shipDate", Maybe.withDefault Encode.null (Maybe.map DateTime.encoder model.shipDate) ) - , ( "status", Maybe.withDefault Encode.null (Maybe.map statusEncoder model.status) ) + , ( "shipDate", Maybe.withDefault Encode.null (Maybe.map DateTime.encode model.shipDate) ) + , ( "status", Maybe.withDefault Encode.null (Maybe.map encodeStatus model.status) ) , ( "complete", Maybe.withDefault Encode.null (Maybe.map Encode.bool model.complete) ) - ] - statusDecoder : Decoder Status statusDecoder = Decode.string @@ -84,9 +80,8 @@ statusDecoder = ) - -statusEncoder : Status -> Encode.Value -statusEncoder model = +encodeStatus : Status -> Encode.Value +encodeStatus model = case model of Placed -> Encode.string "placed" @@ -96,6 +91,3 @@ statusEncoder model = Delivered -> Encode.string "delivered" - - - diff --git a/samples/client/petstore/elm-0.18/src/Data/Pet.elm b/samples/client/petstore/elm-0.18/src/Data/Pet.elm index a62f78e8fe2..a777915436b 100644 --- a/samples/client/petstore/elm-0.18/src/Data/Pet.elm +++ b/samples/client/petstore/elm-0.18/src/Data/Pet.elm @@ -10,7 +10,7 @@ -} -module Data.Pet exposing (Pet, Status(..), decoder, encoder) +module Data.Pet exposing (Pet, Status(..), decoder, encode) import Data.Category as Category exposing (Category) import Data.Tag as Tag exposing (Tag) @@ -23,12 +23,12 @@ import Json.Encode as Encode {-| A pet for sale in the pet store -} type alias Pet = - { id : Maybe (Int) - , category : Maybe (Category) + { id : Maybe Int + , category : Maybe Category , name : String - , photoUrls : (List String) - , tags : Maybe ((List Tag)) - , status : Maybe (Status) + , photoUrls : List String + , tags : Maybe (List Tag) + , status : Maybe Status } @@ -38,7 +38,6 @@ type Status | Sold - decoder : Decoder Pet decoder = decode Pet @@ -50,21 +49,18 @@ decoder = |> optional "status" (Decode.nullable statusDecoder) Nothing - -encoder : Pet -> Encode.Value -encoder model = +encode : Pet -> Encode.Value +encode model = Encode.object [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) ) - , ( "category", Maybe.withDefault Encode.null (Maybe.map Category.encoder model.category) ) + , ( "category", Maybe.withDefault Encode.null (Maybe.map Category.encode model.category) ) , ( "name", Encode.string model.name ) , ( "photoUrls", (Encode.list << List.map Encode.string) model.photoUrls ) - , ( "tags", Maybe.withDefault Encode.null (Maybe.map (Encode.list << List.map Tag.encoder) model.tags) ) - , ( "status", Maybe.withDefault Encode.null (Maybe.map statusEncoder model.status) ) - + , ( "tags", Maybe.withDefault Encode.null (Maybe.map (Encode.list << List.map Tag.encode) model.tags) ) + , ( "status", Maybe.withDefault Encode.null (Maybe.map encodeStatus model.status) ) ] - statusDecoder : Decoder Status statusDecoder = Decode.string @@ -85,9 +81,8 @@ statusDecoder = ) - -statusEncoder : Status -> Encode.Value -statusEncoder model = +encodeStatus : Status -> Encode.Value +encodeStatus model = case model of Available -> Encode.string "available" @@ -97,6 +92,3 @@ statusEncoder model = Sold -> Encode.string "sold" - - - diff --git a/samples/client/petstore/elm-0.18/src/Data/Tag.elm b/samples/client/petstore/elm-0.18/src/Data/Tag.elm index 2c89f24f03b..372029cde7e 100644 --- a/samples/client/petstore/elm-0.18/src/Data/Tag.elm +++ b/samples/client/petstore/elm-0.18/src/Data/Tag.elm @@ -10,7 +10,7 @@ -} -module Data.Tag exposing (Tag, decoder, encoder) +module Data.Tag exposing (Tag, decoder, encode) import Dict exposing (Dict) import Json.Decode as Decode exposing (Decoder) @@ -21,8 +21,8 @@ import Json.Encode as Encode {-| A tag for a pet -} type alias Tag = - { id : Maybe (Int) - , name : Maybe (String) + { id : Maybe Int + , name : Maybe String } @@ -33,13 +33,9 @@ decoder = |> optional "name" (Decode.nullable Decode.string) Nothing - -encoder : Tag -> Encode.Value -encoder model = +encode : Tag -> Encode.Value +encode model = Encode.object [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) ) , ( "name", Maybe.withDefault Encode.null (Maybe.map Encode.string model.name) ) - ] - - diff --git a/samples/client/petstore/elm-0.18/src/Data/User.elm b/samples/client/petstore/elm-0.18/src/Data/User.elm index db358c3e8a2..667c93f4d8b 100644 --- a/samples/client/petstore/elm-0.18/src/Data/User.elm +++ b/samples/client/petstore/elm-0.18/src/Data/User.elm @@ -10,7 +10,7 @@ -} -module Data.User exposing (User, decoder, encoder) +module Data.User exposing (User, decoder, encode) import Dict exposing (Dict) import Json.Decode as Decode exposing (Decoder) @@ -21,14 +21,14 @@ import Json.Encode as Encode {-| A User who is purchasing from the pet store -} type alias User = - { id : Maybe (Int) - , username : Maybe (String) - , firstName : Maybe (String) - , lastName : Maybe (String) - , email : Maybe (String) - , password : Maybe (String) - , phone : Maybe (String) - , userStatus : Maybe (Int) + { id : Maybe Int + , username : Maybe String + , firstName : Maybe String + , lastName : Maybe String + , email : Maybe String + , password : Maybe String + , phone : Maybe String + , userStatus : Maybe Int } @@ -45,9 +45,8 @@ decoder = |> optional "userStatus" (Decode.nullable Decode.int) Nothing - -encoder : User -> Encode.Value -encoder model = +encode : User -> Encode.Value +encode model = Encode.object [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) ) , ( "username", Maybe.withDefault Encode.null (Maybe.map Encode.string model.username) ) @@ -57,7 +56,4 @@ encoder model = , ( "password", Maybe.withDefault Encode.null (Maybe.map Encode.string model.password) ) , ( "phone", Maybe.withDefault Encode.null (Maybe.map Encode.string model.phone) ) , ( "userStatus", Maybe.withDefault Encode.null (Maybe.map Encode.int model.userStatus) ) - ] - - diff --git a/samples/client/petstore/elm-0.18/src/DateOnly.elm b/samples/client/petstore/elm-0.18/src/DateOnly.elm index 29abf6757ef..5874cf65d5e 100644 --- a/samples/client/petstore/elm-0.18/src/DateOnly.elm +++ b/samples/client/petstore/elm-0.18/src/DateOnly.elm @@ -1,4 +1,4 @@ -module DateOnly exposing (DateOnly, decoder, encoder, toString) +module DateOnly exposing (DateOnly, decoder, encode, toString) import Date import Date.Extra exposing (fromIsoString, toFormattedString) @@ -17,8 +17,8 @@ decoder = |> Decode.andThen decodeIsoString -encoder : DateOnly -> Encode.Value -encoder = +encode : DateOnly -> Encode.Value +encode = Encode.string << toString diff --git a/samples/client/petstore/elm-0.18/src/DateTime.elm b/samples/client/petstore/elm-0.18/src/DateTime.elm index a07c912aecd..7e07312468c 100644 --- a/samples/client/petstore/elm-0.18/src/DateTime.elm +++ b/samples/client/petstore/elm-0.18/src/DateTime.elm @@ -1,4 +1,4 @@ -module DateTime exposing (DateTime, decoder, encoder, toString) +module DateTime exposing (DateTime, decoder, encode, toString) import Date import Date.Extra exposing (fromIsoString, toIsoString) @@ -17,8 +17,8 @@ decoder = |> Decode.andThen decodeIsoString -encoder : DateTime -> Encode.Value -encoder = +encode : DateTime -> Encode.Value +encode = Encode.string << toString @@ -34,4 +34,4 @@ decodeIsoString str = toString : DateTime -> String toString = - toIsoString \ No newline at end of file + toIsoString diff --git a/samples/client/petstore/elm-0.18/src/Request/Pet.elm b/samples/client/petstore/elm-0.18/src/Request/Pet.elm index 1e675aed6b2..472eb73a15d 100644 --- a/samples/client/petstore/elm-0.18/src/Request/Pet.elm +++ b/samples/client/petstore/elm-0.18/src/Request/Pet.elm @@ -12,8 +12,8 @@ module Request.Pet exposing (addPet, deletePet, findPetsByStatus, findPetsByTags, getPetById, updatePet, updatePetWithForm, uploadFile) -import Data.Pet as Pet exposing (Pet) import Data.ApiResponse as ApiResponse exposing (ApiResponse) +import Data.Pet as Pet exposing (Pet) import Dict import Http import Json.Decode as Decode @@ -29,7 +29,7 @@ addPet model = { method = "POST" , url = basePath ++ "/pet" , headers = [] - , body = Http.jsonBody <| Pet.encoder model + , body = Http.jsonBody <| Pet.encode model , expect = Http.expectStringResponse (\_ -> Ok ()) , timeout = Just 30000 , withCredentials = False @@ -40,7 +40,7 @@ addPet model = deletePet : Int -> Http.Request () deletePet petId = { method = "DELETE" - , url = basePath ++ "/pet/" ++ toString petId + , url = basePath ++ "/pet/" ++ toString petId , headers = [] , body = Http.emptyBody , expect = Http.expectStringResponse (\_ -> Ok ()) @@ -85,7 +85,7 @@ findPetsByTags = getPetById : Int -> Http.Request Pet getPetById petId = { method = "GET" - , url = basePath ++ "/pet/" ++ toString petId + , url = basePath ++ "/pet/" ++ toString petId , headers = [] , body = Http.emptyBody , expect = Http.expectJson Pet.decoder @@ -100,7 +100,7 @@ updatePet model = { method = "PUT" , url = basePath ++ "/pet" , headers = [] - , body = Http.jsonBody <| Pet.encoder model + , body = Http.jsonBody <| Pet.encode model , expect = Http.expectStringResponse (\_ -> Ok ()) , timeout = Just 30000 , withCredentials = False @@ -111,7 +111,7 @@ updatePet model = updatePetWithForm : Int -> Http.Request () updatePetWithForm petId = { method = "POST" - , url = basePath ++ "/pet/" ++ toString petId + , url = basePath ++ "/pet/" ++ toString petId , headers = [] , body = Http.emptyBody , expect = Http.expectStringResponse (\_ -> Ok ()) @@ -124,7 +124,7 @@ updatePetWithForm petId = uploadFile : Int -> Http.Request ApiResponse uploadFile petId = { method = "POST" - , url = basePath ++ "/pet/" ++ toString petId ++ "/uploadImage" + , url = basePath ++ "/pet/" ++ toString petId ++ "/uploadImage" , headers = [] , body = Http.emptyBody , expect = Http.expectJson ApiResponse.decoder diff --git a/samples/client/petstore/elm-0.18/src/Request/Store.elm b/samples/client/petstore/elm-0.18/src/Request/Store.elm index 770e6b40829..c2872e305c0 100644 --- a/samples/client/petstore/elm-0.18/src/Request/Store.elm +++ b/samples/client/petstore/elm-0.18/src/Request/Store.elm @@ -28,7 +28,7 @@ basePath = deleteOrder : String -> Http.Request () deleteOrder orderId = { method = "DELETE" - , url = basePath ++ "/store/order/" ++ orderId + , url = basePath ++ "/store/order/" ++ orderId , headers = [] , body = Http.emptyBody , expect = Http.expectStringResponse (\_ -> Ok ()) @@ -58,7 +58,7 @@ getInventory = getOrderById : Int -> Http.Request Order_ getOrderById orderId = { method = "GET" - , url = basePath ++ "/store/order/" ++ toString orderId + , url = basePath ++ "/store/order/" ++ toString orderId , headers = [] , body = Http.emptyBody , expect = Http.expectJson Order_.decoder @@ -73,7 +73,7 @@ placeOrder model = { method = "POST" , url = basePath ++ "/store/order" , headers = [] - , body = Http.jsonBody <| Order_.encoder model + , body = Http.jsonBody <| Order_.encode model , expect = Http.expectJson Order_.decoder , timeout = Just 30000 , withCredentials = False diff --git a/samples/client/petstore/elm-0.18/src/Request/User.elm b/samples/client/petstore/elm-0.18/src/Request/User.elm index 87177bc9761..c6e4048a059 100644 --- a/samples/client/petstore/elm-0.18/src/Request/User.elm +++ b/samples/client/petstore/elm-0.18/src/Request/User.elm @@ -30,7 +30,7 @@ createUser model = { method = "POST" , url = basePath ++ "/user" , headers = [] - , body = Http.jsonBody <| User.encoder model + , body = Http.jsonBody <| User.encode model , expect = Http.expectStringResponse (\_ -> Ok ()) , timeout = Just 30000 , withCredentials = False @@ -43,7 +43,7 @@ createUsersWithArrayInput model = { method = "POST" , url = basePath ++ "/user/createWithArray" , headers = [] - , body = Http.jsonBody <| User.encoder model + , body = Http.jsonBody <| User.encode model , expect = Http.expectStringResponse (\_ -> Ok ()) , timeout = Just 30000 , withCredentials = False @@ -56,7 +56,7 @@ createUsersWithListInput model = { method = "POST" , url = basePath ++ "/user/createWithList" , headers = [] - , body = Http.jsonBody <| User.encoder model + , body = Http.jsonBody <| User.encode model , expect = Http.expectStringResponse (\_ -> Ok ()) , timeout = Just 30000 , withCredentials = False @@ -69,7 +69,7 @@ createUsersWithListInput model = deleteUser : String -> Http.Request () deleteUser username = { method = "DELETE" - , url = basePath ++ "/user/" ++ username + , url = basePath ++ "/user/" ++ username , headers = [] , body = Http.emptyBody , expect = Http.expectStringResponse (\_ -> Ok ()) @@ -82,7 +82,7 @@ deleteUser username = getUserByName : String -> Http.Request User getUserByName username = { method = "GET" - , url = basePath ++ "/user/" ++ username + , url = basePath ++ "/user/" ++ username , headers = [] , body = Http.emptyBody , expect = Http.expectJson User.decoder @@ -123,9 +123,9 @@ logoutUser = updateUser : String -> User -> Http.Request () updateUser username model = { method = "PUT" - , url = basePath ++ "/user/" ++ username + , url = basePath ++ "/user/" ++ username , headers = [] - , body = Http.jsonBody <| User.encoder model + , body = Http.jsonBody <| User.encode model , expect = Http.expectStringResponse (\_ -> Ok ()) , timeout = Just 30000 , withCredentials = False diff --git a/samples/client/petstore/elm/elm.json b/samples/client/petstore/elm/elm.json index b8a06a11c17..e4ae0f4df15 100644 --- a/samples/client/petstore/elm/elm.json +++ b/samples/client/petstore/elm/elm.json @@ -7,6 +7,7 @@ "dependencies": { "direct": { "NoRedInk/elm-json-decode-pipeline": "1.0.0", + "danyx23/elm-uuid": "2.1.2", "elm/browser": "1.0.1", "elm/core": "1.0.2", "elm/html": "1.0.0", @@ -20,6 +21,8 @@ "elm/bytes": "1.0.5", "elm/file": "1.0.1", "elm/parser": "1.1.0", + "elm/random": "1.0.0", + "elm/regex": "1.0.0", "elm/virtual-dom": "1.0.2" } }, diff --git a/samples/client/petstore/elm/src/Byte.elm b/samples/client/petstore/elm/src/Byte.elm index 6c80664aba1..d83623d9846 100644 --- a/samples/client/petstore/elm/src/Byte.elm +++ b/samples/client/petstore/elm/src/Byte.elm @@ -1,4 +1,4 @@ -module Byte exposing (Byte, decoder, encoder) +module Byte exposing (Byte, decoder, encode) import Json.Decode as Decode exposing (Decoder) import Json.Encode as Encode @@ -13,6 +13,6 @@ decoder = Decode.string -encoder : Byte -> Encode.Value -encoder model = +encode : Byte -> Encode.Value +encode model = Encode.string model diff --git a/samples/client/petstore/elm/src/Data/ApiResponse.elm b/samples/client/petstore/elm/src/Data/ApiResponse.elm index c20358dc496..9bdc2ac4da9 100644 --- a/samples/client/petstore/elm/src/Data/ApiResponse.elm +++ b/samples/client/petstore/elm/src/Data/ApiResponse.elm @@ -10,7 +10,7 @@ -} -module Data.ApiResponse exposing (ApiResponse, decoder, encoder) +module Data.ApiResponse exposing (ApiResponse, decoder, encode) import Dict exposing (Dict) import Json.Decode as Decode exposing (Decoder) @@ -21,9 +21,9 @@ import Json.Encode as Encode {-| Describes the result of uploading an image resource -} type alias ApiResponse = - { code : Maybe (Int) - , type_ : Maybe (String) - , message : Maybe (String) + { code : Maybe Int + , type_ : Maybe String + , message : Maybe String } @@ -35,14 +35,10 @@ decoder = |> optional "message" (Decode.nullable Decode.string) Nothing - -encoder : ApiResponse -> Encode.Value -encoder model = +encode : ApiResponse -> Encode.Value +encode model = Encode.object [ ( "code", Maybe.withDefault Encode.null (Maybe.map Encode.int model.code) ) , ( "type", Maybe.withDefault Encode.null (Maybe.map Encode.string model.type_) ) , ( "message", Maybe.withDefault Encode.null (Maybe.map Encode.string model.message) ) - ] - - diff --git a/samples/client/petstore/elm/src/Data/Category.elm b/samples/client/petstore/elm/src/Data/Category.elm index 54e6f3f7e75..091166fb620 100644 --- a/samples/client/petstore/elm/src/Data/Category.elm +++ b/samples/client/petstore/elm/src/Data/Category.elm @@ -10,7 +10,7 @@ -} -module Data.Category exposing (Category, decoder, encoder) +module Data.Category exposing (Category, decoder, encode) import Dict exposing (Dict) import Json.Decode as Decode exposing (Decoder) @@ -21,8 +21,8 @@ import Json.Encode as Encode {-| A category for a pet -} type alias Category = - { id : Maybe (Int) - , name : Maybe (String) + { id : Maybe Int + , name : Maybe String } @@ -33,13 +33,9 @@ decoder = |> optional "name" (Decode.nullable Decode.string) Nothing - -encoder : Category -> Encode.Value -encoder model = +encode : Category -> Encode.Value +encode model = Encode.object [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) ) , ( "name", Maybe.withDefault Encode.null (Maybe.map Encode.string model.name) ) - ] - - diff --git a/samples/client/petstore/elm/src/Data/Order_.elm b/samples/client/petstore/elm/src/Data/Order_.elm index 4641dcb6523..0deb6066234 100644 --- a/samples/client/petstore/elm/src/Data/Order_.elm +++ b/samples/client/petstore/elm/src/Data/Order_.elm @@ -10,7 +10,7 @@ -} -module Data.Order_ exposing (Order_, Status(..), decoder, encoder) +module Data.Order_ exposing (Order_, Status(..), decoder, encode) import DateTime exposing (DateTime) import Dict exposing (Dict) @@ -22,12 +22,12 @@ import Json.Encode as Encode {-| An order for a pets from the pet store -} type alias Order_ = - { id : Maybe (Int) - , petId : Maybe (Int) - , quantity : Maybe (Int) - , shipDate : Maybe (DateTime) - , status : Maybe (Status) - , complete : Maybe (Bool) + { id : Maybe Int + , petId : Maybe Int + , quantity : Maybe Int + , shipDate : Maybe DateTime + , status : Maybe Status + , complete : Maybe Bool } @@ -37,7 +37,6 @@ type Status | Delivered - decoder : Decoder Order_ decoder = Decode.succeed Order_ @@ -49,21 +48,18 @@ decoder = |> optional "complete" (Decode.nullable Decode.bool) (Just False) - -encoder : Order_ -> Encode.Value -encoder model = +encode : Order_ -> Encode.Value +encode model = Encode.object [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) ) , ( "petId", Maybe.withDefault Encode.null (Maybe.map Encode.int model.petId) ) , ( "quantity", Maybe.withDefault Encode.null (Maybe.map Encode.int model.quantity) ) - , ( "shipDate", Maybe.withDefault Encode.null (Maybe.map DateTime.encoder model.shipDate) ) - , ( "status", Maybe.withDefault Encode.null (Maybe.map statusEncoder model.status) ) + , ( "shipDate", Maybe.withDefault Encode.null (Maybe.map DateTime.encode model.shipDate) ) + , ( "status", Maybe.withDefault Encode.null (Maybe.map encodeStatus model.status) ) , ( "complete", Maybe.withDefault Encode.null (Maybe.map Encode.bool model.complete) ) - ] - statusDecoder : Decoder Status statusDecoder = Decode.string @@ -84,9 +80,8 @@ statusDecoder = ) - -statusEncoder : Status -> Encode.Value -statusEncoder model = +encodeStatus : Status -> Encode.Value +encodeStatus model = case model of Placed -> Encode.string "placed" @@ -96,6 +91,3 @@ statusEncoder model = Delivered -> Encode.string "delivered" - - - diff --git a/samples/client/petstore/elm/src/Data/Pet.elm b/samples/client/petstore/elm/src/Data/Pet.elm index 3a803c48a03..f7ccb9ab1cb 100644 --- a/samples/client/petstore/elm/src/Data/Pet.elm +++ b/samples/client/petstore/elm/src/Data/Pet.elm @@ -10,7 +10,7 @@ -} -module Data.Pet exposing (Pet, Status(..), decoder, encoder) +module Data.Pet exposing (Pet, Status(..), decoder, encode) import Data.Category as Category exposing (Category) import Data.Tag as Tag exposing (Tag) @@ -23,12 +23,12 @@ import Json.Encode as Encode {-| A pet for sale in the pet store -} type alias Pet = - { id : Maybe (Int) - , category : Maybe (Category) + { id : Maybe Int + , category : Maybe Category , name : String - , photoUrls : (List String) - , tags : Maybe ((List Tag)) - , status : Maybe (Status) + , photoUrls : List String + , tags : Maybe (List Tag) + , status : Maybe Status } @@ -38,7 +38,6 @@ type Status | Sold - decoder : Decoder Pet decoder = Decode.succeed Pet @@ -50,21 +49,18 @@ decoder = |> optional "status" (Decode.nullable statusDecoder) Nothing - -encoder : Pet -> Encode.Value -encoder model = +encode : Pet -> Encode.Value +encode model = Encode.object [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) ) - , ( "category", Maybe.withDefault Encode.null (Maybe.map Category.encoder model.category) ) + , ( "category", Maybe.withDefault Encode.null (Maybe.map Category.encode model.category) ) , ( "name", Encode.string model.name ) - , ( "photoUrls", (Encode.list Encode.string) model.photoUrls ) - , ( "tags", Maybe.withDefault Encode.null (Maybe.map (Encode.list Tag.encoder) model.tags) ) - , ( "status", Maybe.withDefault Encode.null (Maybe.map statusEncoder model.status) ) - + , ( "photoUrls", Encode.list Encode.string model.photoUrls ) + , ( "tags", Maybe.withDefault Encode.null (Maybe.map (Encode.list Tag.encode) model.tags) ) + , ( "status", Maybe.withDefault Encode.null (Maybe.map encodeStatus model.status) ) ] - statusDecoder : Decoder Status statusDecoder = Decode.string @@ -85,9 +81,8 @@ statusDecoder = ) - -statusEncoder : Status -> Encode.Value -statusEncoder model = +encodeStatus : Status -> Encode.Value +encodeStatus model = case model of Available -> Encode.string "available" @@ -97,6 +92,3 @@ statusEncoder model = Sold -> Encode.string "sold" - - - diff --git a/samples/client/petstore/elm/src/Data/Tag.elm b/samples/client/petstore/elm/src/Data/Tag.elm index 4d9d9a6c866..d81dc661260 100644 --- a/samples/client/petstore/elm/src/Data/Tag.elm +++ b/samples/client/petstore/elm/src/Data/Tag.elm @@ -10,7 +10,7 @@ -} -module Data.Tag exposing (Tag, decoder, encoder) +module Data.Tag exposing (Tag, decoder, encode) import Dict exposing (Dict) import Json.Decode as Decode exposing (Decoder) @@ -21,8 +21,8 @@ import Json.Encode as Encode {-| A tag for a pet -} type alias Tag = - { id : Maybe (Int) - , name : Maybe (String) + { id : Maybe Int + , name : Maybe String } @@ -33,13 +33,9 @@ decoder = |> optional "name" (Decode.nullable Decode.string) Nothing - -encoder : Tag -> Encode.Value -encoder model = +encode : Tag -> Encode.Value +encode model = Encode.object [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) ) , ( "name", Maybe.withDefault Encode.null (Maybe.map Encode.string model.name) ) - ] - - diff --git a/samples/client/petstore/elm/src/Data/User.elm b/samples/client/petstore/elm/src/Data/User.elm index d6a4e30474e..8db61e71fda 100644 --- a/samples/client/petstore/elm/src/Data/User.elm +++ b/samples/client/petstore/elm/src/Data/User.elm @@ -10,7 +10,7 @@ -} -module Data.User exposing (User, decoder, encoder) +module Data.User exposing (User, decoder, encode) import Dict exposing (Dict) import Json.Decode as Decode exposing (Decoder) @@ -21,14 +21,14 @@ import Json.Encode as Encode {-| A User who is purchasing from the pet store -} type alias User = - { id : Maybe (Int) - , username : Maybe (String) - , firstName : Maybe (String) - , lastName : Maybe (String) - , email : Maybe (String) - , password : Maybe (String) - , phone : Maybe (String) - , userStatus : Maybe (Int) + { id : Maybe Int + , username : Maybe String + , firstName : Maybe String + , lastName : Maybe String + , email : Maybe String + , password : Maybe String + , phone : Maybe String + , userStatus : Maybe Int } @@ -45,9 +45,8 @@ decoder = |> optional "userStatus" (Decode.nullable Decode.int) Nothing - -encoder : User -> Encode.Value -encoder model = +encode : User -> Encode.Value +encode model = Encode.object [ ( "id", Maybe.withDefault Encode.null (Maybe.map Encode.int model.id) ) , ( "username", Maybe.withDefault Encode.null (Maybe.map Encode.string model.username) ) @@ -57,7 +56,4 @@ encoder model = , ( "password", Maybe.withDefault Encode.null (Maybe.map Encode.string model.password) ) , ( "phone", Maybe.withDefault Encode.null (Maybe.map Encode.string model.phone) ) , ( "userStatus", Maybe.withDefault Encode.null (Maybe.map Encode.int model.userStatus) ) - ] - - diff --git a/samples/client/petstore/elm/src/DateOnly.elm b/samples/client/petstore/elm/src/DateOnly.elm index acd6cd44eb9..a31efc88c38 100644 --- a/samples/client/petstore/elm/src/DateOnly.elm +++ b/samples/client/petstore/elm/src/DateOnly.elm @@ -1,4 +1,4 @@ -module DateOnly exposing (DateOnly, decoder, encoder, toString) +module DateOnly exposing (DateOnly, decoder, encode, toString) import Iso8601 import Json.Decode as Decode exposing (Decoder) @@ -17,8 +17,8 @@ decoder = |> Decode.andThen decodeIsoString -encoder : DateOnly -> Encode.Value -encoder = +encode : DateOnly -> Encode.Value +encode = Encode.string << toString diff --git a/samples/client/petstore/elm/src/DateTime.elm b/samples/client/petstore/elm/src/DateTime.elm index d85fcee5fe3..80b62fb7dec 100644 --- a/samples/client/petstore/elm/src/DateTime.elm +++ b/samples/client/petstore/elm/src/DateTime.elm @@ -1,4 +1,4 @@ -module DateTime exposing (DateTime, decoder, encoder, toString) +module DateTime exposing (DateTime, decoder, encode, toString) import Iso8601 import Json.Decode as Decode exposing (Decoder) @@ -17,8 +17,8 @@ decoder = |> Decode.andThen decodeIsoString -encoder : DateTime -> Encode.Value -encoder = +encode : DateTime -> Encode.Value +encode = Encode.string << toString @@ -34,4 +34,4 @@ decodeIsoString str = toString : DateTime -> String toString = - Iso8601.fromTime \ No newline at end of file + Iso8601.fromTime diff --git a/samples/client/petstore/elm/src/Request/Pet.elm b/samples/client/petstore/elm/src/Request/Pet.elm index fcfe81ee3a6..d507e166623 100644 --- a/samples/client/petstore/elm/src/Request/Pet.elm +++ b/samples/client/petstore/elm/src/Request/Pet.elm @@ -12,8 +12,8 @@ module Request.Pet exposing (addPet, deletePet, findPetsByStatus, findPetsByTags, getPetById, updatePet, updatePetWithForm, uploadFile) -import Data.Pet as Pet exposing (Pet) import Data.ApiResponse as ApiResponse exposing (ApiResponse) +import Data.Pet as Pet exposing (Pet) import Dict import Http import Json.Decode as Decode @@ -28,18 +28,17 @@ basePath = addPet : { onSend : Result Http.Error () -> msg , body : Pet - - } -> Cmd msg addPet params = Http.request { method = "POST" , headers = [] - , url = Url.crossOrigin basePath - ["pet"] - (List.filterMap identity []) - , body = Http.jsonBody <| Pet.encoder params.body + , url = + Url.crossOrigin basePath + [ "pet" ] + (List.filterMap identity []) + , body = Http.jsonBody <| Pet.encode params.body , expect = Http.expectWhatever params.onSend , timeout = Just 30000 , tracker = Nothing @@ -48,18 +47,17 @@ addPet params = deletePet : { onSend : Result Http.Error () -> msg - , petId : Int - } -> Cmd msg deletePet params = Http.request { method = "DELETE" , headers = [] - , url = Url.crossOrigin basePath - ["pet", String.fromInt params.petId] - (List.filterMap identity []) + , url = + Url.crossOrigin basePath + [ "pet", String.fromInt params.petId ] + (List.filterMap identity []) , body = Http.emptyBody , expect = Http.expectWhatever params.onSend , timeout = Just 30000 @@ -71,8 +69,6 @@ deletePet params = -} findPetsByStatus : { onSend : Result Http.Error (List Pet) -> msg - - , status : List String } -> Cmd msg @@ -80,9 +76,10 @@ findPetsByStatus params = Http.request { method = "GET" , headers = [] - , url = Url.crossOrigin basePath - ["pet", "findByStatus"] - (List.filterMap identity [Just (Url.string "status" <| String.join "," params.status)]) + , url = + Url.crossOrigin basePath + [ "pet", "findByStatus" ] + (List.filterMap identity [ Just (Url.string "status" <| String.join "," params.status) ]) , body = Http.emptyBody , expect = Http.expectJson params.onSend (Decode.list Pet.decoder) , timeout = Just 30000 @@ -94,8 +91,6 @@ findPetsByStatus params = -} findPetsByTags : { onSend : Result Http.Error (List Pet) -> msg - - , tags : List String } -> Cmd msg @@ -103,9 +98,10 @@ findPetsByTags params = Http.request { method = "GET" , headers = [] - , url = Url.crossOrigin basePath - ["pet", "findByTags"] - (List.filterMap identity [Just (Url.string "tags" <| String.join "," params.tags)]) + , url = + Url.crossOrigin basePath + [ "pet", "findByTags" ] + (List.filterMap identity [ Just (Url.string "tags" <| String.join "," params.tags) ]) , body = Http.emptyBody , expect = Http.expectJson params.onSend (Decode.list Pet.decoder) , timeout = Just 30000 @@ -117,18 +113,17 @@ findPetsByTags params = -} getPetById : { onSend : Result Http.Error Pet -> msg - , petId : Int - } -> Cmd msg getPetById params = Http.request { method = "GET" , headers = [] - , url = Url.crossOrigin basePath - ["pet", String.fromInt params.petId] - (List.filterMap identity []) + , url = + Url.crossOrigin basePath + [ "pet", String.fromInt params.petId ] + (List.filterMap identity []) , body = Http.emptyBody , expect = Http.expectJson params.onSend Pet.decoder , timeout = Just 30000 @@ -139,18 +134,17 @@ getPetById params = updatePet : { onSend : Result Http.Error () -> msg , body : Pet - - } -> Cmd msg updatePet params = Http.request { method = "PUT" , headers = [] - , url = Url.crossOrigin basePath - ["pet"] - (List.filterMap identity []) - , body = Http.jsonBody <| Pet.encoder params.body + , url = + Url.crossOrigin basePath + [ "pet" ] + (List.filterMap identity []) + , body = Http.jsonBody <| Pet.encode params.body , expect = Http.expectWhatever params.onSend , timeout = Just 30000 , tracker = Nothing @@ -159,18 +153,17 @@ updatePet params = updatePetWithForm : { onSend : Result Http.Error () -> msg - , petId : Int - } -> Cmd msg updatePetWithForm params = Http.request { method = "POST" , headers = [] - , url = Url.crossOrigin basePath - ["pet", String.fromInt params.petId] - (List.filterMap identity []) + , url = + Url.crossOrigin basePath + [ "pet", String.fromInt params.petId ] + (List.filterMap identity []) , body = Http.emptyBody , expect = Http.expectWhatever params.onSend , timeout = Just 30000 @@ -180,18 +173,17 @@ updatePetWithForm params = uploadFile : { onSend : Result Http.Error ApiResponse -> msg - , petId : Int - } -> Cmd msg uploadFile params = Http.request { method = "POST" , headers = [] - , url = Url.crossOrigin basePath - ["pet", String.fromInt params.petId, "uploadImage"] - (List.filterMap identity []) + , url = + Url.crossOrigin basePath + [ "pet", String.fromInt params.petId, "uploadImage" ] + (List.filterMap identity []) , body = Http.emptyBody , expect = Http.expectJson params.onSend ApiResponse.decoder , timeout = Just 30000 diff --git a/samples/client/petstore/elm/src/Request/Store.elm b/samples/client/petstore/elm/src/Request/Store.elm index 89b0110c1a8..69ec328cddb 100644 --- a/samples/client/petstore/elm/src/Request/Store.elm +++ b/samples/client/petstore/elm/src/Request/Store.elm @@ -28,18 +28,17 @@ basePath = -} deleteOrder : { onSend : Result Http.Error () -> msg - , orderId : String - } -> Cmd msg deleteOrder params = Http.request { method = "DELETE" , headers = [] - , url = Url.crossOrigin basePath - ["store", "order", params.orderId] - (List.filterMap identity []) + , url = + Url.crossOrigin basePath + [ "store", "order", params.orderId ] + (List.filterMap identity []) , body = Http.emptyBody , expect = Http.expectWhatever params.onSend , timeout = Just 30000 @@ -51,18 +50,16 @@ deleteOrder params = -} getInventory : { onSend : Result Http.Error (Dict.Dict String Int) -> msg - - - } -> Cmd msg getInventory params = Http.request { method = "GET" , headers = [] - , url = Url.crossOrigin basePath - ["store", "inventory"] - (List.filterMap identity []) + , url = + Url.crossOrigin basePath + [ "store", "inventory" ] + (List.filterMap identity []) , body = Http.emptyBody , expect = Http.expectJson params.onSend (Decode.dict Decode.int) , timeout = Just 30000 @@ -74,18 +71,17 @@ getInventory params = -} getOrderById : { onSend : Result Http.Error Order_ -> msg - , orderId : Int - } -> Cmd msg getOrderById params = Http.request { method = "GET" , headers = [] - , url = Url.crossOrigin basePath - ["store", "order", String.fromInt params.orderId] - (List.filterMap identity []) + , url = + Url.crossOrigin basePath + [ "store", "order", String.fromInt params.orderId ] + (List.filterMap identity []) , body = Http.emptyBody , expect = Http.expectJson params.onSend Order_.decoder , timeout = Just 30000 @@ -96,18 +92,17 @@ getOrderById params = placeOrder : { onSend : Result Http.Error Order_ -> msg , body : Order_ - - } -> Cmd msg placeOrder params = Http.request { method = "POST" , headers = [] - , url = Url.crossOrigin basePath - ["store", "order"] - (List.filterMap identity []) - , body = Http.jsonBody <| Order_.encoder params.body + , url = + Url.crossOrigin basePath + [ "store", "order" ] + (List.filterMap identity []) + , body = Http.jsonBody <| Order_.encode params.body , expect = Http.expectJson params.onSend Order_.decoder , timeout = Just 30000 , tracker = Nothing diff --git a/samples/client/petstore/elm/src/Request/User.elm b/samples/client/petstore/elm/src/Request/User.elm index d72f67d520f..246836c3e27 100644 --- a/samples/client/petstore/elm/src/Request/User.elm +++ b/samples/client/petstore/elm/src/Request/User.elm @@ -29,18 +29,17 @@ basePath = createUser : { onSend : Result Http.Error () -> msg , body : User - - } -> Cmd msg createUser params = Http.request { method = "POST" , headers = [] - , url = Url.crossOrigin basePath - ["user"] - (List.filterMap identity []) - , body = Http.jsonBody <| User.encoder params.body + , url = + Url.crossOrigin basePath + [ "user" ] + (List.filterMap identity []) + , body = Http.jsonBody <| User.encode params.body , expect = Http.expectWhatever params.onSend , timeout = Just 30000 , tracker = Nothing @@ -50,18 +49,17 @@ createUser params = createUsersWithArrayInput : { onSend : Result Http.Error () -> msg , body : User - - } -> Cmd msg createUsersWithArrayInput params = Http.request { method = "POST" , headers = [] - , url = Url.crossOrigin basePath - ["user", "createWithArray"] - (List.filterMap identity []) - , body = Http.jsonBody <| User.encoder params.body + , url = + Url.crossOrigin basePath + [ "user", "createWithArray" ] + (List.filterMap identity []) + , body = Http.jsonBody <| User.encode params.body , expect = Http.expectWhatever params.onSend , timeout = Just 30000 , tracker = Nothing @@ -71,18 +69,17 @@ createUsersWithArrayInput params = createUsersWithListInput : { onSend : Result Http.Error () -> msg , body : User - - } -> Cmd msg createUsersWithListInput params = Http.request { method = "POST" , headers = [] - , url = Url.crossOrigin basePath - ["user", "createWithList"] - (List.filterMap identity []) - , body = Http.jsonBody <| User.encoder params.body + , url = + Url.crossOrigin basePath + [ "user", "createWithList" ] + (List.filterMap identity []) + , body = Http.jsonBody <| User.encode params.body , expect = Http.expectWhatever params.onSend , timeout = Just 30000 , tracker = Nothing @@ -93,18 +90,17 @@ createUsersWithListInput params = -} deleteUser : { onSend : Result Http.Error () -> msg - , username : String - } -> Cmd msg deleteUser params = Http.request { method = "DELETE" , headers = [] - , url = Url.crossOrigin basePath - ["user", params.username] - (List.filterMap identity []) + , url = + Url.crossOrigin basePath + [ "user", params.username ] + (List.filterMap identity []) , body = Http.emptyBody , expect = Http.expectWhatever params.onSend , timeout = Just 30000 @@ -114,18 +110,17 @@ deleteUser params = getUserByName : { onSend : Result Http.Error User -> msg - , username : String - } -> Cmd msg getUserByName params = Http.request { method = "GET" , headers = [] - , url = Url.crossOrigin basePath - ["user", params.username] - (List.filterMap identity []) + , url = + Url.crossOrigin basePath + [ "user", params.username ] + (List.filterMap identity []) , body = Http.emptyBody , expect = Http.expectJson params.onSend User.decoder , timeout = Just 30000 @@ -135,18 +130,18 @@ getUserByName params = loginUser : { onSend : Result Http.Error String -> msg - - - , username : String , password : String + , username : String + , password : String } -> Cmd msg loginUser params = Http.request { method = "GET" , headers = [] - , url = Url.crossOrigin basePath - ["user", "login"] - (List.filterMap identity [Just (Url.string "username" <| params.username), Just (Url.string "password" <| params.password)]) + , url = + Url.crossOrigin basePath + [ "user", "login" ] + (List.filterMap identity [ Just (Url.string "username" <| params.username), Just (Url.string "password" <| params.password) ]) , body = Http.emptyBody , expect = Http.expectJson params.onSend Decode.string , timeout = Just 30000 @@ -156,18 +151,16 @@ loginUser params = logoutUser : { onSend : Result Http.Error () -> msg - - - } -> Cmd msg logoutUser params = Http.request { method = "GET" , headers = [] - , url = Url.crossOrigin basePath - ["user", "logout"] - (List.filterMap identity []) + , url = + Url.crossOrigin basePath + [ "user", "logout" ] + (List.filterMap identity []) , body = Http.emptyBody , expect = Http.expectWhatever params.onSend , timeout = Just 30000 @@ -181,17 +174,17 @@ updateUser : { onSend : Result Http.Error () -> msg , body : User , username : String - } -> Cmd msg updateUser params = Http.request { method = "PUT" , headers = [] - , url = Url.crossOrigin basePath - ["user", params.username] - (List.filterMap identity []) - , body = Http.jsonBody <| User.encoder params.body + , url = + Url.crossOrigin basePath + [ "user", params.username ] + (List.filterMap identity []) + , body = Http.jsonBody <| User.encode params.body , expect = Http.expectWhatever params.onSend , timeout = Just 30000 , tracker = Nothing