{"action":"created","issue":{"url":"https://api.github.com/repos/WordPoints/wordpoints/issues/321","repository_url":"https://api.github.com/repos/WordPoints/wordpoints","labels_url":"https://api.github.com/repos/WordPoints/wordpoints/issues/321/labels{/name}","comments_url":"https://api.github.com/repos/WordPoints/wordpoints/issues/321/comments","events_url":"https://api.github.com/repos/WordPoints/wordpoints/issues/321/events","html_url":"https://github.com/WordPoints/wordpoints/issues/321","id":70205678,"number":321,"title":"Basic Hooks API","user":{"login":"JDGrimes","id":4005415,"avatar_url":"https://avatars.githubusercontent.com/u/4005415?v=3","gravatar_id":"","url":"https://api.github.com/users/JDGrimes","html_url":"https://github.com/JDGrimes","followers_url":"https://api.github.com/users/JDGrimes/followers","following_url":"https://api.github.com/users/JDGrimes/following{/other_user}","gists_url":"https://api.github.com/users/JDGrimes/gists{/gist_id}","starred_url":"https://api.github.com/users/JDGrimes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JDGrimes/subscriptions","organizations_url":"https://api.github.com/users/JDGrimes/orgs","repos_url":"https://api.github.com/users/JDGrimes/repos","events_url":"https://api.github.com/users/JDGrimes/events{/privacy}","received_events_url":"https://api.github.com/users/JDGrimes/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/WordPoints/wordpoints/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/WordPoints/wordpoints/labels/module-first","name":"module-first","color":"bfe5bf"},{"url":"https://api.github.com/repos/WordPoints/wordpoints/labels/needs-docs","name":"needs-docs","color":"0052cc"}],"state":"closed","locked":false,"assignee":{"login":"JDGrimes","id":4005415,"avatar_url":"https://avatars.githubusercontent.com/u/4005415?v=3","gravatar_id":"","url":"https://api.github.com/users/JDGrimes","html_url":"https://github.com/JDGrimes","followers_url":"https://api.github.com/users/JDGrimes/followers","following_url":"https://api.github.com/users/JDGrimes/following{/other_user}","gists_url":"https://api.github.com/users/JDGrimes/gists{/gist_id}","starred_url":"https://api.github.com/users/JDGrimes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JDGrimes/subscriptions","organizations_url":"https://api.github.com/users/JDGrimes/orgs","repos_url":"https://api.github.com/users/JDGrimes/repos","events_url":"https://api.github.com/users/JDGrimes/events{/privacy}","received_events_url":"https://api.github.com/users/JDGrimes/received_events","type":"User","site_admin":false},"assignees":[{"login":"JDGrimes","id":4005415,"avatar_url":"https://avatars.githubusercontent.com/u/4005415?v=3","gravatar_id":"","url":"https://api.github.com/users/JDGrimes","html_url":"https://github.com/JDGrimes","followers_url":"https://api.github.com/users/JDGrimes/followers","following_url":"https://api.github.com/users/JDGrimes/following{/other_user}","gists_url":"https://api.github.com/users/JDGrimes/gists{/gist_id}","starred_url":"https://api.github.com/users/JDGrimes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JDGrimes/subscriptions","organizations_url":"https://api.github.com/users/JDGrimes/orgs","repos_url":"https://api.github.com/users/JDGrimes/repos","events_url":"https://api.github.com/users/JDGrimes/events{/privacy}","received_events_url":"https://api.github.com/users/JDGrimes/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/WordPoints/wordpoints/milestones/23","html_url":"https://github.com/WordPoints/wordpoints/milestones/2.1.0","labels_url":"https://api.github.com/repos/WordPoints/wordpoints/milestones/23/labels","id":1152983,"number":23,"title":"2.1.0","description":"","creator":{"login":"JDGrimes","id":4005415,"avatar_url":"https://avatars.githubusercontent.com/u/4005415?v=3","gravatar_id":"","url":"https://api.github.com/users/JDGrimes","html_url":"https://github.com/JDGrimes","followers_url":"https://api.github.com/users/JDGrimes/followers","following_url":"https://api.github.com/users/JDGrimes/following{/other_user}","gists_url":"https://api.github.com/users/JDGrimes/gists{/gist_id}","starred_url":"https://api.github.com/users/JDGrimes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JDGrimes/subscriptions","organizations_url":"https://api.github.com/users/JDGrimes/orgs","repos_url":"https://api.github.com/users/JDGrimes/repos","events_url":"https://api.github.com/users/JDGrimes/events{/privacy}","received_events_url":"https://api.github.com/users/JDGrimes/received_events","type":"User","site_admin":false},"open_issues":16,"closed_issues":54,"state":"open","created_at":"2015-06-06T21:12:15Z","updated_at":"2016-07-14T19:01:44Z","due_on":"2016-07-30T04:00:00Z","closed_at":null},"comments":13,"created_at":"2015-04-22T18:48:03Z","updated_at":"2016-07-14T19:02:55Z","closed_at":"2016-07-07T21:36:40Z","body":"I think we should introduce a basic API that handles hooking into user actions. This would be part of the plugin's core and not part of any particular component. The purpose would be to help facilitate development of a badges component (#320), and to make it easier to achieve parity of features in terms of what hooks are offered across the various components.\r\n\r\nLet's take a basic user action, like leaving a comment. We have a points hook that hooks into that user action, and will award a certain number of points for each comment a user leaves. Consider us now adding a badges component. We'll then want to have a badge hook that hooks into this same action. We probably don't want to award a badge every time a user leaves a comment though, so we'll also want to be able place a required number of times that the action is performed before the hook actually get's fired. \r\nThis isn't a feature currently offered for hooks, but it could be useful. Next consider that we might want to award badges or points only for a comments on a certain type of post. We already do this for the points hook. So we'll also want to have *constraints* that an action must meet.\r\n\r\nNow, instead of having to code two separate APIs for each hook and constraint for Points, Badges (and maybe Ranks one day too), we should develop a basic Hook API that all of these use. I'm not sure that this is meat for 2.0. I think it should be developed as a separate module that will be merged into the plugin when it's ripe (possible in coordination with 3.0).\r\n"},"comment":{"url":"https://api.github.com/repos/WordPoints/wordpoints/issues/comments/232760980","html_url":"https://github.com/WordPoints/wordpoints/issues/321#issuecomment-232760980","issue_url":"https://api.github.com/repos/WordPoints/wordpoints/issues/321","id":232760980,"user":{"login":"JDGrimes","id":4005415,"avatar_url":"https://avatars.githubusercontent.com/u/4005415?v=3","gravatar_id":"","url":"https://api.github.com/users/JDGrimes","html_url":"https://github.com/JDGrimes","followers_url":"https://api.github.com/users/JDGrimes/followers","following_url":"https://api.github.com/users/JDGrimes/following{/other_user}","gists_url":"https://api.github.com/users/JDGrimes/gists{/gist_id}","starred_url":"https://api.github.com/users/JDGrimes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JDGrimes/subscriptions","organizations_url":"https://api.github.com/users/JDGrimes/orgs","repos_url":"https://api.github.com/users/JDGrimes/repos","events_url":"https://api.github.com/users/JDGrimes/events{/privacy}","received_events_url":"https://api.github.com/users/JDGrimes/received_events","type":"User","site_admin":false},"created_at":"2016-07-14T19:02:55Z","updated_at":"2016-07-14T19:02:55Z","body":"Note that when we update the docs we also need to consider the front page, which talks about hooks still."}}
{"actor":{"display_login":"JDGrimes"}}