@@ -70,16 +70,16 @@ main = hspec spec
7070
7171infoExample :: SwaggerInfo
7272infoExample = SwaggerInfo
73− { swaggerInfoTitle = "Swagger Sample App"
74− , swaggerInfoDescription = Just "This is a sample server Petstore server."
75− , swaggerInfoTermsOfService = Just "http://swagger.io/terms/"
76− , swaggerInfoContact = Just contactExample
77− , swaggerInfoLicense = Just licenseExample
78− , swaggerInfoVersion = "1.0.1" }
73+ { _swaggerInfoTitle = "Swagger Sample App"
74+ , _swaggerInfoDescription = Just "This is a sample server Petstore server."
75+ , _swaggerInfoTermsOfService = Just "http://swagger.io/terms/"
76+ , _swaggerInfoContact = Just contactExample
77+ , _swaggerInfoLicense = Just licenseExample
78+ , _swaggerInfoVersion = "1.0.1" }
7979 where
8080 license = SwaggerLicense
81− { swaggerLicenseName = "Apache 2.0"
82− , swaggerLicenseUrl = Just (URL "http://www.apache.org/licenses/LICENSE-2.0.html") }
81+ { _swaggerLicenseName = "Apache 2.0"
82+ , _swaggerLicenseUrl = Just (URL "http://www.apache.org/licenses/LICENSE-2.0.html") }
8383
8484infoExampleJSON :: Value
8585infoExampleJSON = [aesonQQ|
@@ -106,9 +106,9 @@ infoExampleJSON = [aesonQQ|
106106
107107contactExample :: SwaggerContact
108108contactExample = SwaggerContact
109− { swaggerContactName = Just "API Support"
110− , swaggerContactUrl = Just (URL "http://www.swagger.io/support")
111− , swaggerContactEmail = Just "support@swagger.io" }
109+ { _swaggerContactName = Just "API Support"
110+ , _swaggerContactUrl = Just (URL "http://www.swagger.io/support")
111+ , _swaggerContactEmail = Just "support@swagger.io" }
112112
113113contactExampleJSON :: Value
114114contactExampleJSON = [aesonQQ|
@@ -125,8 +125,8 @@ contactExampleJSON = [aesonQQ|
125125
126126licenseExample :: SwaggerLicense
127127licenseExample = SwaggerLicense
128− { swaggerLicenseName = "Apache 2.0"
129− , swaggerLicenseUrl = Just (URL "http://www.apache.org/licenses/LICENSE-2.0.html") }
128+ { _swaggerLicenseName = "Apache 2.0"
129+ , _swaggerLicenseUrl = Just (URL "http://www.apache.org/licenses/LICENSE-2.0.html") }
130130
131131licenseExampleJSON :: Value
132132licenseExampleJSON = [aesonQQ|
@@ -143,45 +143,45 @@ licenseExampleJSON = [aesonQQ|
143143
144144operationExample :: SwaggerOperation
145145operationExample = mempty
146− { swaggerOperationTags = ["pet"]
147− , swaggerOperationSummary = Just "Updates a pet in the store with form data"
148− , swaggerOperationDescription = Just ""
149− , swaggerOperationOperationId = Just "updatePetWithForm"
150− , swaggerOperationConsumes = Just (SwaggerMimeList ["application/x-www-form-urlencoded"])
151− , swaggerOperationProduces = Just (SwaggerMimeList ["application/json", "application/xml"])
152− , swaggerOperationParameters = params
153− , swaggerOperationResponses = responses
154− , swaggerOperationSecurity = security
146+ { _swaggerOperationTags = ["pet"]
147+ , _swaggerOperationSummary = Just "Updates a pet in the store with form data"
148+ , _swaggerOperationDescription = Just ""
149+ , _swaggerOperationOperationId = Just "updatePetWithForm"
150+ , _swaggerOperationConsumes = Just (SwaggerMimeList ["application/x-www-form-urlencoded"])
151+ , _swaggerOperationProduces = Just (SwaggerMimeList ["application/json", "application/xml"])
152+ , _swaggerOperationParameters = params
153+ , _swaggerOperationResponses = responses
154+ , _swaggerOperationSecurity = security
155155 }
156156 where
157157 security = [SwaggerSecurityRequirement [("petstore_auth", ["write:pets", "read:pets"])]]
158158
159159 responses = mempty
160− { swaggerResponsesResponses =
161− [ (200, SwaggerInline mempty { swaggerResponseDescription = "Pet updated." })
162− , (405, SwaggerInline mempty { swaggerResponseDescription = "Invalid input" }) ] }
160+ { _swaggerResponsesResponses =
161+ [ (200, SwaggerInline mempty { _swaggerResponseDescription = "Pet updated." })
162+ , (405, SwaggerInline mempty { _swaggerResponseDescription = "Invalid input" }) ] }
163163
164164 params = map SwaggerInline
165165 [ SwaggerParameter
166− { swaggerParameterName = "petId"
167− , swaggerParameterDescription = Just "ID of pet that needs to be updated"
168− , swaggerParameterRequired = True
169− , swaggerParameterSchema = SwaggerParameterOther (stringSchema SwaggerParameterPath) }
166+ { _swaggerParameterName = "petId"
167+ , _swaggerParameterDescription = Just "ID of pet that needs to be updated"
168+ , _swaggerParameterRequired = True
169+ , _swaggerParameterSchema = SwaggerParameterOther (stringSchema SwaggerParameterPath) }
170170 , SwaggerParameter
171− { swaggerParameterName = "name"
172− , swaggerParameterDescription = Just "Updated name of the pet"
173− , swaggerParameterRequired = False
174− , swaggerParameterSchema = SwaggerParameterOther (stringSchema SwaggerParameterFormData) }
171+ { _swaggerParameterName = "name"
172+ , _swaggerParameterDescription = Just "Updated name of the pet"
173+ , _swaggerParameterRequired = False
174+ , _swaggerParameterSchema = SwaggerParameterOther (stringSchema SwaggerParameterFormData) }
175175 , SwaggerParameter
176− { swaggerParameterName = "status"
177− , swaggerParameterDescription = Just "Updated status of the pet"
178− , swaggerParameterRequired = False
179− , swaggerParameterSchema = SwaggerParameterOther (stringSchema SwaggerParameterFormData) }
176+ { _swaggerParameterName = "status"
177+ , _swaggerParameterDescription = Just "Updated status of the pet"
178+ , _swaggerParameterRequired = False
179+ , _swaggerParameterSchema = SwaggerParameterOther (stringSchema SwaggerParameterFormData) }
180180 ]
181181
182182 stringSchema i = mempty
183− { swaggerParameterOtherSchemaIn = i
184− , swaggerParameterOtherSchemaType = SwaggerParamString
183+ { _swaggerParameterOtherSchemaIn = i
184+ , _swaggerParameterOtherSchemaType = SwaggerParamString
185185 }
186186
187187operationExampleJSON :: Value
@@ -248,8 +248,8 @@ operationExampleJSON = [aesonQQ|
248248
249249schemaPrimitiveExample :: SwaggerSchema
250250schemaPrimitiveExample = mempty
251− { swaggerSchemaType = SwaggerSchemaString
252− , swaggerSchemaFormat = Just "email"
251+ { _swaggerSchemaType = SwaggerSchemaString
252+ , _swaggerSchemaFormat = Just "email"
253253 }
254254
255255schemaPrimitiveExampleJSON :: Value
@@ -262,17 +262,16 @@ schemaPrimitiveExampleJSON = [aesonQQ|
262262
263263schemaSimpleModelExample :: SwaggerSchema
264264schemaSimpleModelExample = mempty
265− { swaggerSchemaType = SwaggerSchemaObject
266− , swaggerSchemaRequired = [ "name" ]
267− , swaggerSchemaProperties =
265+ { _swaggerSchemaType = SwaggerSchemaObject
266+ , _swaggerSchemaRequired = [ "name" ]
267+ , _swaggerSchemaProperties =
268268 [ ("name", SwaggerInline mempty
269− { swaggerSchemaType = SwaggerSchemaString } )
270− , ("address", SwaggerRef (SwaggerReference "#/definitions/Address"))
269+ { _swaggerSchemaType = SwaggerSchemaString } )
271270 , ("age", SwaggerInline mempty
272− { swaggerSchemaType = SwaggerSchemaInteger
273− , swaggerSchemaFormat = Just "int32"
274− , swaggerSchemaCommon = mempty
275− { swaggerSchemaMinimum = Just 0 } } ) ] }
271+ { _swaggerSchemaType = SwaggerSchemaInteger
272+ , _swaggerSchemaFormat = Just "int32"
273+ , _swaggerSchemaCommon = mempty
274+ { _swaggerSchemaMinimum = Just 0 } } ) ] }
276275
277276schemaSimpleModelExampleJSON :: Value
278277schemaSimpleModelExampleJSON = [aesonQQ|
@@ -299,9 +298,9 @@ schemaSimpleModelExampleJSON = [aesonQQ|
299298
300299schemaModelDictExample :: SwaggerSchema
301300schemaModelDictExample = mempty
302− { swaggerSchemaType = SwaggerSchemaObject
303− , swaggerSchemaAdditionalProperties = Just mempty
304− { swaggerSchemaType = SwaggerSchemaString } }
301+ { _swaggerSchemaType = SwaggerSchemaObject
302+ , _swaggerSchemaAdditionalProperties = Just mempty
303+ { _swaggerSchemaType = SwaggerSchemaString } }
305304
306305schemaModelDictExampleJSON :: Value
307306schemaModelDictExampleJSON = [aesonQQ|
@@ -315,15 +314,15 @@ schemaModelDictExampleJSON = [aesonQQ|
315314
316315schemaWithExampleExample :: SwaggerSchema
317316schemaWithExampleExample = mempty
318− { swaggerSchemaType = SwaggerSchemaObject
319− , swaggerSchemaProperties =
317+ { _swaggerSchemaType = SwaggerSchemaObject
318+ , _swaggerSchemaProperties =
320319 [ ("id", SwaggerInline mempty
321− { swaggerSchemaType = SwaggerSchemaInteger
322− , swaggerSchemaFormat = Just "int64" })
320+ { _swaggerSchemaType = SwaggerSchemaInteger
321+ , _swaggerSchemaFormat = Just "int64" })
323322 , ("name", SwaggerInline mempty
324− { swaggerSchemaType = SwaggerSchemaString }) ]
325− , swaggerSchemaRequired = [ "name" ]
326− , swaggerSchemaExample = Just [aesonQQ|
323+ { _swaggerSchemaType = SwaggerSchemaString }) ]
324+ , _swaggerSchemaRequired = [ "name" ]
325+ , _swaggerSchemaExample = Just [aesonQQ|
327326 {
328327 "name": "Puma",
329328 "id": 1
@@ -360,21 +359,21 @@ schemaWithExampleExampleJSON = [aesonQQ|
360359definitionsExample :: HashMap Text SwaggerSchema
361360definitionsExample =
362361 [ ("Category", mempty
363− { swaggerSchemaType = SwaggerSchemaObject
364− , swaggerSchemaProperties =
362+ { _swaggerSchemaType = SwaggerSchemaObject
363+ , _swaggerSchemaProperties =
365364 [ ("id", SwaggerInline mempty
366− { swaggerSchemaType = SwaggerSchemaInteger
367− , swaggerSchemaFormat = Just "int64" })
365+ { _swaggerSchemaType = SwaggerSchemaInteger
366+ , _swaggerSchemaFormat = Just "int64" })
368367 , ("name", SwaggerInline mempty
369− { swaggerSchemaType = SwaggerSchemaString }) ] })
368+ { _swaggerSchemaType = SwaggerSchemaString }) ] })
370369 , ("Tag", mempty
371− { swaggerSchemaType = SwaggerSchemaObject
372− , swaggerSchemaProperties =
370+ { _swaggerSchemaType = SwaggerSchemaObject
371+ , _swaggerSchemaProperties =
373372 [ ("id", SwaggerInline mempty
374− { swaggerSchemaType = SwaggerSchemaInteger
375− , swaggerSchemaFormat = Just "int64" })
373+ { _swaggerSchemaType = SwaggerSchemaInteger
374+ , _swaggerSchemaFormat = Just "int64" })
376375 , ("name", SwaggerInline mempty
377− { swaggerSchemaType = SwaggerSchemaString }) ] }) ]
376+ { _swaggerSchemaType = SwaggerSchemaString }) ] }) ]
378377
379378definitionsExampleJSON :: Value
380379definitionsExampleJSON = [aesonQQ|
@@ -413,21 +412,21 @@ definitionsExampleJSON = [aesonQQ|
413412parametersDefinitionExample :: HashMap Text SwaggerParameter
414413parametersDefinitionExample =
415414 [ ("skipParam", mempty
416− { swaggerParameterName = "skip"
417− , swaggerParameterDescription = Just "number of items to skip"
418− , swaggerParameterRequired = True
419− , swaggerParameterSchema = SwaggerParameterOther mempty
420− { swaggerParameterOtherSchemaIn = SwaggerParameterQuery
421− , swaggerParameterOtherSchemaType = SwaggerParamInteger
422− , swaggerParameterOtherSchemaFormat = Just "int32" } })
415+ { _swaggerParameterName = "skip"
416+ , _swaggerParameterDescription = Just "number of items to skip"
417+ , _swaggerParameterRequired = True
418+ , _swaggerParameterSchema = SwaggerParameterOther mempty
419+ { _swaggerParameterOtherSchemaIn = SwaggerParameterQuery
420+ , _swaggerParameterOtherSchemaType = SwaggerParamInteger
421+ , _swaggerParameterOtherSchemaFormat = Just "int32" } })
423422 , ("limitParam", mempty
424− { swaggerParameterName = "limit"
425− , swaggerParameterDescription = Just "max records to return"
426− , swaggerParameterRequired = True
427− , swaggerParameterSchema = SwaggerParameterOther mempty
428− { swaggerParameterOtherSchemaIn = SwaggerParameterQuery
429− , swaggerParameterOtherSchemaType = SwaggerParamInteger
430− , swaggerParameterOtherSchemaFormat = Just "int32" } }) ]
423+ { _swaggerParameterName = "limit"
424+ , _swaggerParameterDescription = Just "max records to return"
425+ , _swaggerParameterRequired = True
426+ , _swaggerParameterSchema = SwaggerParameterOther mempty
427+ { _swaggerParameterOtherSchemaIn = SwaggerParameterQuery
428+ , _swaggerParameterOtherSchemaType = SwaggerParamInteger
429+ , _swaggerParameterOtherSchemaFormat = Just "int32" } }) ]
431430
432431parametersDefinitionExampleJSON :: Value
433432parametersDefinitionExampleJSON = [aesonQQ|
@@ -457,8 +456,8 @@ parametersDefinitionExampleJSON = [aesonQQ|
457456
458457responsesDefinitionExample :: HashMap Text SwaggerResponse
459458responsesDefinitionExample =
460− [ ("NotFound", mempty { swaggerResponseDescription = "Entity not found." })
461− , ("IllegalInput", mempty { swaggerResponseDescription = "Illegal input for operation." }) ]
459+ [ ("NotFound", mempty { _swaggerResponseDescription = "Entity not found." })
460+ , ("IllegalInput", mempty { _swaggerResponseDescription = "Illegal input for operation." }) ]
462461
463462responsesDefinitionExampleJSON :: Value
464463responsesDefinitionExampleJSON = [aesonQQ|
@@ -479,15 +478,15 @@ responsesDefinitionExampleJSON = [aesonQQ|
479478securityDefinitionsExample :: HashMap Text SwaggerSecurityScheme
480479securityDefinitionsExample =
481480 [ ("api_key", SwaggerSecurityScheme
482− { swaggerSecuritySchemeType = SwaggerSecuritySchemeApiKey (SwaggerApiKeyParams "api_key" SwaggerApiKeyHeader)
483− , swaggerSecuritySchemeDescription = Nothing })
481+ { _swaggerSecuritySchemeType = SwaggerSecuritySchemeApiKey (SwaggerApiKeyParams "api_key" SwaggerApiKeyHeader)
482+ , _swaggerSecuritySchemeDescription = Nothing })
484483 , ("petstore_auth", SwaggerSecurityScheme
485− { swaggerSecuritySchemeType = SwaggerSecuritySchemeOAuth2 (SwaggerOAuth2Params
486− { swaggerOAuth2Flow = SwaggerOAuth2Implicit "http://swagger.io/api/oauth/dialog"
487− , swaggerOAuth2Scopes =
484+ { _swaggerSecuritySchemeType = SwaggerSecuritySchemeOAuth2 (SwaggerOAuth2Params
485+ { _swaggerOAuth2Flow = SwaggerOAuth2Implicit "http://swagger.io/api/oauth/dialog"
486+ , _swaggerOAuth2Scopes =
488487 [ ("write:pets", "modify pets in your account")
489488 , ("read:pets", "read your pets") ] } )
490− , swaggerSecuritySchemeDescription = Nothing }) ]
489+ , _swaggerSecuritySchemeDescription = Nothing }) ]
491490
492491securityDefinitionsExampleJSON :: Value
493492securityDefinitionsExampleJSON = [aesonQQ|
@@ -515,47 +514,47 @@ securityDefinitionsExampleJSON = [aesonQQ|
515514
516515swaggerExample :: Swagger
517516swaggerExample = mempty
518− { swaggerBasePath = Just "/"
519− , swaggerSchemes = Just [Http]
520− , swaggerInfo = mempty
521− { swaggerInfoVersion = "1.0"
522− , swaggerInfoTitle = "Todo API"
523− , swaggerInfoLicense = Just SwaggerLicense
524− { swaggerLicenseName = "MIT"
525− , swaggerLicenseUrl = Just (URL "http://mit.com") }
526− , swaggerInfoDescription = Just "This is a an API that tests servant-swagger support for a Todo API" }
527− , swaggerPaths = mempty
528− { swaggerPathsMap =
517+ { _swaggerBasePath = Just "/"
518+ , _swaggerSchemes = Just [Http]
519+ , _swaggerInfo = mempty
520+ { _swaggerInfoVersion = "1.0"
521+ , _swaggerInfoTitle = "Todo API"
522+ , _swaggerInfoLicense = Just SwaggerLicense
523+ { _swaggerLicenseName = "MIT"
524+ , _swaggerLicenseUrl = Just (URL "http://mit.com") }
525+ , _swaggerInfoDescription = Just "This is a an API that tests servant-swagger support for a Todo API" }
526+ , _swaggerPaths = mempty
527+ { _swaggerPathsMap =
529528 [ ("/todo/{id}", mempty
530− { swaggerPathItemGet = Just mempty
531− { swaggerOperationResponses = mempty
532− { swaggerResponsesResponses =
529+ { _swaggerPathItemGet = Just mempty
530+ { _swaggerOperationResponses = mempty
531+ { _swaggerResponsesResponses =
533532 [ (200, SwaggerInline mempty
534− { swaggerResponseSchema = Just $ SwaggerInline mempty
535− { swaggerSchemaExample = Just [aesonQQ|
533+ { _swaggerResponseSchema = Just $ SwaggerInline mempty
534+ { _swaggerSchemaExample = Just [aesonQQ|
536535 {
537536 "created": 100,
538537 "description": "get milk"
539538 } |]
540− , swaggerSchemaType = SwaggerSchemaObject
541− , swaggerSchemaDescription = Just "This is some real Todo right here"
542− , swaggerSchemaProperties =
539+ , _swaggerSchemaType = SwaggerSchemaObject
540+ , _swaggerSchemaDescription = Just "This is some real Todo right here"
541+ , _swaggerSchemaProperties =
543542 [ ("created", SwaggerInline mempty
544− { swaggerSchemaType = SwaggerSchemaInteger
545− , swaggerSchemaFormat = Just "int32" })
543+ { _swaggerSchemaType = SwaggerSchemaInteger
544+ , _swaggerSchemaFormat = Just "int32" })
546545 , ("description", SwaggerInline mempty
547− { swaggerSchemaType = SwaggerSchemaString }) ] }
548− , swaggerResponseDescription = "OK" }) ] }
549− , swaggerOperationProduces = Just (SwaggerMimeList [ "application/json" ])
550− , swaggerOperationParameters =
546+ { _swaggerSchemaType = SwaggerSchemaString }) ] }
547+ , _swaggerResponseDescription = "OK" }) ] }
548+ , _swaggerOperationProduces = Just (SwaggerMimeList [ "application/json" ])
549+ , _swaggerOperationParameters =
551550 [ SwaggerInline mempty
552− { swaggerParameterRequired = True
553− , swaggerParameterName = "id"
554− , swaggerParameterDescription = Just "TodoId param"
555− , swaggerParameterSchema = SwaggerParameterOther mempty
556− { swaggerParameterOtherSchemaIn = SwaggerParameterPath
557− , swaggerParameterOtherSchemaType = SwaggerParamString } } ]
558− , swaggerOperationTags = [ "todo" ] } }) ] } }
551+ { _swaggerParameterRequired = True
552+ , _swaggerParameterName = "id"
553+ , _swaggerParameterDescription = Just "TodoId param"
554+ , _swaggerParameterSchema = SwaggerParameterOther mempty
555+ { _swaggerParameterOtherSchemaIn = SwaggerParameterPath
556+ , _swaggerParameterOtherSchemaType = SwaggerParamString } } ]
557+ , _swaggerOperationTags = [ "todo" ] } }) ] } }
559558
560559swaggerExampleJSON :: Value
561560swaggerExampleJSON = [aesonQQ|