given a persistent model definition like this:
mkPersist sqlSettings [persistLowerCase|
Person
name String
age Int
deriving Show
|]
I'm looking for a way to get the field definitions for this model. FieldDef
looks like a promising datatype, but persistent does not generate a getPersonFields :: [FieldDef]
function, so how can it be done?
In case this is a XY problem - here's the background: I want to return some kind of metadata in case of json parse errors. If I try to POST a new person but the json is wrong, I want to respond with something like:
{
"result": "error",
"code": 8,
"message": "Could not parse payload as person",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "age",
"type": "int"
}
]
}
A sample example showing how it is done:
Demo: