{"action":"created","issue":{"url":"https://api.github.com/repos/ninjaframework/ninja/issues/504","repository_url":"https://api.github.com/repos/ninjaframework/ninja","labels_url":"https://api.github.com/repos/ninjaframework/ninja/issues/504/labels{/name}","comments_url":"https://api.github.com/repos/ninjaframework/ninja/issues/504/comments","events_url":"https://api.github.com/repos/ninjaframework/ninja/issues/504/events","html_url":"https://github.com/ninjaframework/ninja/pull/504","id":148779945,"number":504,"title":"Enhanced parsing of input values (post or parameters)","user":{"login":"jlannoy","id":3064433,"avatar_url":"https://avatars.githubusercontent.com/u/3064433?v=3","gravatar_id":"","url":"https://api.github.com/users/jlannoy","html_url":"https://github.com/jlannoy","followers_url":"https://api.github.com/users/jlannoy/followers","following_url":"https://api.github.com/users/jlannoy/following{/other_user}","gists_url":"https://api.github.com/users/jlannoy/gists{/gist_id}","starred_url":"https://api.github.com/users/jlannoy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlannoy/subscriptions","organizations_url":"https://api.github.com/users/jlannoy/orgs","repos_url":"https://api.github.com/users/jlannoy/repos","events_url":"https://api.github.com/users/jlannoy/events{/privacy}","received_events_url":"https://api.github.com/users/jlannoy/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-04-15T22:02:11Z","updated_at":"2016-06-09T20:06:34Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ninjaframework/ninja/pulls/504","html_url":"https://github.com/ninjaframework/ninja/pull/504","diff_url":"https://github.com/ninjaframework/ninja/pull/504.diff","patch_url":"https://github.com/ninjaframework/ninja/pull/504.patch"},"body":"Hello.\r\n\r\nI already tried to send this [request](https://github.com/ninjaframework/ninja/pull/448) before but your review, the modifications needed and the evolution of the main repository I have not been able to do a rebase. I tried several times but finally it took less pain to copy them on a fresh branch. \r\n\r\nIf you remember it, the goal of this PR is to enhance the parsing of strings to simple types, from the parameters or from the request. In details, it allows :\r\n* To avoid duplicated code or differences between ParamParsers and SwissKnife converters (their job are in fact the same)\r\n* To allow the POST body engine to register validation errors on conversion failure\r\n* To avoid registering enumeration at start\r\n* To allow users to register their own ParamParser\r\n* Even overriding default ones, which can be useful to specify a particular DateFormat\r\n* To allow parsing of other objects inside the parsed POST object\r\n\r\nNotes :\r\n* Custom ParamParsers are instancied via an Injector, so that users can make usage of @Inject dependencies\r\n* The convert method for Date from the SwissKnife class have been translated to a ParamParser, based on LocalDateTime (as the original method). I’m thinking about something more useful, with date format from the properties file based on current Locale ; but I didn’t want to make a bigger PR. The fact is that with this PR, each user will be able to write a parser with it’s own format.\r\n* It works with the MultiBinder, and is documented as well\r\n* I had to enhanced the Validation documentation page, to make the differences with the JSR303 validator clear (interpolated messages in bean violation // message keys in field validations)\r\n\r\nRegards,\r\n\r\nJonathan"},"comment":{"url":"https://api.github.com/repos/ninjaframework/ninja/issues/comments/225010614","html_url":"https://github.com/ninjaframework/ninja/pull/504#issuecomment-225010614","issue_url":"https://api.github.com/repos/ninjaframework/ninja/issues/504","id":225010614,"user":{"login":"jlannoy","id":3064433,"avatar_url":"https://avatars.githubusercontent.com/u/3064433?v=3","gravatar_id":"","url":"https://api.github.com/users/jlannoy","html_url":"https://github.com/jlannoy","followers_url":"https://api.github.com/users/jlannoy/followers","following_url":"https://api.github.com/users/jlannoy/following{/other_user}","gists_url":"https://api.github.com/users/jlannoy/gists{/gist_id}","starred_url":"https://api.github.com/users/jlannoy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlannoy/subscriptions","organizations_url":"https://api.github.com/users/jlannoy/orgs","repos_url":"https://api.github.com/users/jlannoy/repos","events_url":"https://api.github.com/users/jlannoy/events{/privacy}","received_events_url":"https://api.github.com/users/jlannoy/received_events","type":"User","site_admin":false},"created_at":"2016-06-09T20:06:34Z","updated_at":"2016-06-09T20:06:34Z","body":"Hello @raphaelbauer and @jjlauer ... Don't forget this change. It was quite hard to merge my modifications from the previous pull request, I'd rather not doing it again. Thanks!"}}
{"actor":{"display_login":"jlannoy"}}