documentationhelp wantedquestion
Repository metrics
- Stars
- (74 stars)
- PR merge metrics
- (No merged PRs in 30d)
Description
E.g. I have type
data PaymentOptionsCommon id =
PaymentOptions
{ poId :: id
, poPaymentType :: Maybe PaymentMethod
, poPaymentNet :: Maybe Int
, poInstallment :: Maybe Int -- days
} deriving (Generic, Eq, Ord, Show)
type PaymentOptions = PaymentOptionsCommon ()
And ToJSON instance like this:
instance FromJSON PaymentOptions where
parseJSON = withObject "paymentOptions" $ \o -> do
poId <- skip
poPaymentType <- o .:? "type"
poPaymentNet <- o .:? "deffered"
poInstallment <- o .:? "installment"
return $! PaymentOptions{..}
instance ToJSON PaymentOptions where
toJSON PaymentOptions{..} =
object
[ "type" .= poPaymentType
, "deffered" .= poPaymentNet
, "installment" .= poInstallment
]
And auto-generated ToSchema instance:
instance ToSchema PaymentOptions
So, swagger would looks like:
PaymentOptionsCommon:
required:
- poId
properties:
poId:
items: []
type: array
poPaymentType:
$ref: '#/definitions/PaymentMethod'
poPaymentNet:
maximum: 9223372036854776000
minimum: -9223372036854776000
type: integer
poInstallment:
maximum: 9223372036854776000
minimum: -9223372036854776000
type: integer
type: object
But instead I expect to see something more like:
PaymentOptions:
properties:
type:
$ref: '#/definitions/PaymentMethod'
deffered:
maximum: 9223372036854776000
minimum: -9223372036854776000
type: integer
installment:
maximum: 9223372036854776000
minimum: -9223372036854776000
type: integer
type: object
Without prefixes
The question is: how to do this?