schema icon indicating copy to clipboard operation
schema copied to clipboard

Support default values for custom types by performing the default scan before decoding

Open markbradley27 opened this issue 1 year ago • 2 comments

What type of PR is this? (check all applicable)

  • [x] Refactor
  • [x] Feature
  • [ ] Bug Fix
  • [ ] Optimization
  • [ ] Documentation Update
  • [ ] Go Version Update
  • [ ] Dependency Update

Description

Rather than setting defaults on the output of the decode, this sets defaults on the input. This means that all of the fancy logic in decode that handles custom converters and TextUnmarshallers can apply to default values as well.

DRAFT: Still needs some error handling updates, encode support, and general polish, but sending this out as a draft to demonstrate that the approach works. You can see that the unit test still passes for all of the previously supported default types, as well as a new custom type. I'll try to get around to polishing this up soon.

Related Tickets & Documents

  • Closes #225

Added/updated tests?

  • [X] Yes
  • [ ] No, and this is why: please replace this line with details on why tests have not been included
  • [ ] I need help with writing tests

Run verifications and test

  • [ ] make verify is passing
  • [ ] make test is passing

markbradley27 avatar Nov 12 '24 17:11 markbradley27

This is awesome, I also thought it was quite weird that applying the default values required a whole new piece of code when it's functionally the same thing as parsing the form values. I see you commented out some tests, mind if I take a crack?

PapaCharlie avatar Feb 25 '25 21:02 PapaCharlie

@PapaCharlie Not at all! I keep meaning to get back to this and just haven't found the time.

markbradley27 avatar Feb 27 '25 23:02 markbradley27