{"action":"created","issue":{"url":"https://api.github.com/repos/tendant/graphql-clj/issues/20","repository_url":"https://api.github.com/repos/tendant/graphql-clj","labels_url":"https://api.github.com/repos/tendant/graphql-clj/issues/20/labels{/name}","comments_url":"https://api.github.com/repos/tendant/graphql-clj/issues/20/comments","events_url":"https://api.github.com/repos/tendant/graphql-clj/issues/20/events","html_url":"https://github.com/tendant/graphql-clj/pull/20","id":182610785,"number":20,"title":"Basic schema and statement validation","user":{"login":"aew","id":726169,"avatar_url":"https://avatars.githubusercontent.com/u/726169?v=3","gravatar_id":"","url":"https://api.github.com/users/aew","html_url":"https://github.com/aew","followers_url":"https://api.github.com/users/aew/followers","following_url":"https://api.github.com/users/aew/following{/other_user}","gists_url":"https://api.github.com/users/aew/gists{/gist_id}","starred_url":"https://api.github.com/users/aew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aew/subscriptions","organizations_url":"https://api.github.com/users/aew/orgs","repos_url":"https://api.github.com/users/aew/repos","events_url":"https://api.github.com/users/aew/events{/privacy}","received_events_url":"https://api.github.com/users/aew/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-10-12T19:20:10Z","updated_at":"2016-10-12T19:32:10Z","closed_at":"2016-10-12T19:31:30Z","pull_request":{"url":"https://api.github.com/repos/tendant/graphql-clj/pulls/20","html_url":"https://github.com/tendant/graphql-clj/pull/20","diff_url":"https://github.com/tendant/graphql-clj/pull/20.diff","patch_url":"https://github.com/tendant/graphql-clj/pull/20.patch"},"body":"- Pass existing validation CATs (including error messages, mostly, code is still overly complex), including valid and invalid examples\r\n- Namespace schema (and statement variable) types for global spec naming\r\n- Define specs at the end after walking the entire tree (rather than as we go). Support validation of recursive object types.\r\n- Support whitespace at the beginning / end of a schema or statement\r\n- Extra eval protection for defining specs only\r\n- Simplify approach to optional vs. required\r\n- Support types for nested lists, including required\r\n- Split schema and statement validation into 2 passes each - one for resolving specs, two for validation rules using them\r\n- Add a defnodevisitor macro to operate exclusively on nodes of a certain type\r\n- Fix some invalid schema scenarios\r\n- Support required for scalars (but not yet for other types)\r\n\r\nThe error rendering from spec errors to error output matching the CATS is a bit painful and incomplete."},"comment":{"url":"https://api.github.com/repos/tendant/graphql-clj/issues/comments/253314505","html_url":"https://github.com/tendant/graphql-clj/pull/20#issuecomment-253314505","issue_url":"https://api.github.com/repos/tendant/graphql-clj/issues/20","id":253314505,"user":{"login":"tendant","id":37181,"avatar_url":"https://avatars.githubusercontent.com/u/37181?v=3","gravatar_id":"","url":"https://api.github.com/users/tendant","html_url":"https://github.com/tendant","followers_url":"https://api.github.com/users/tendant/followers","following_url":"https://api.github.com/users/tendant/following{/other_user}","gists_url":"https://api.github.com/users/tendant/gists{/gist_id}","starred_url":"https://api.github.com/users/tendant/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tendant/subscriptions","organizations_url":"https://api.github.com/users/tendant/orgs","repos_url":"https://api.github.com/users/tendant/repos","events_url":"https://api.github.com/users/tendant/events{/privacy}","received_events_url":"https://api.github.com/users/tendant/received_events","type":"User","site_admin":false},"created_at":"2016-10-12T19:32:10Z","updated_at":"2016-10-12T19:32:10Z","body":"This is great. Thanks a lot. \r\n\r\nPlease fetch updated master and create new feature branch from master if needed."}}
{"actor":{"display_login":"tendant"}}