{"action":"created","comment":{"url":"https://api.github.com/repos/as-ideas/crowdsource/pulls/comments/45588861","id":45588861,"diff_hunk":"@@ -0,0 +1,63 @@\n+package de.asideas.crowdsource.domain.service.financinground;\r\n+\r\n+import de.asideas.crowdsource.domain.model.FinancingRoundEntity;\r\n+import de.asideas.crowdsource.repository.FinancingRoundRepository;\r\n+import de.asideas.crowdsource.repository.ProjectRepository;\r\n+import de.asideas.crowdsource.repository.UserRepository;\r\n+import org.slf4j.Logger;\r\n+import org.slf4j.LoggerFactory;\r\n+import org.springframework.beans.factory.annotation.Autowired;\r\n+import org.springframework.stereotype.Service;\r\n+import org.springframework.util.Assert;\r\n+\r\n+/**\r\n+ * A post processing domain service that executes any action necessary to\r\n+ * synchronize depending entities upon termination of a {@link FinancingRoundEntity}.\r\n+ * <p>\r\n+ * It is supposed to be exectued directly as well as in a scheduled manner.\r\n+ * <p>\r\n+ * As long as there is no reliable mechanism of concurrent scheduled task execution this\r\n+ * service should be kept idempotent.\r\n+ */\r\n+@Service\r\n+public class FinancingRoundPostProcessor {\r","path":"crowdsource-core/src/main/java/de/asideas/crowdsource/domain/service/financinground/FinancingRoundPostProcessor.java","position":23,"original_position":23,"commit_id":"f07c483b75b433bfc01bb95d783eb419ca54cfe3","original_commit_id":"f07c483b75b433bfc01bb95d783eb419ca54cfe3","user":{"login":"CanardSauvage","id":3428674,"avatar_url":"https://avatars.githubusercontent.com/u/3428674?v=3","gravatar_id":"","url":"https://api.github.com/users/CanardSauvage","html_url":"https://github.com/CanardSauvage","followers_url":"https://api.github.com/users/CanardSauvage/followers","following_url":"https://api.github.com/users/CanardSauvage/following{/other_user}","gists_url":"https://api.github.com/users/CanardSauvage/gists{/gist_id}","starred_url":"https://api.github.com/users/CanardSauvage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CanardSauvage/subscriptions","organizations_url":"https://api.github.com/users/CanardSauvage/orgs","repos_url":"https://api.github.com/users/CanardSauvage/repos","events_url":"https://api.github.com/users/CanardSauvage/events{/privacy}","received_events_url":"https://api.github.com/users/CanardSauvage/received_events","type":"User","site_admin":false},"body":"Ich mag sowas nicht. Solche Dinge macht man nur, wenn man viele unterschiedliche Schritte hat, dann kann man so ein \"Chain\"-Pattern wählen. Aber warum muss diese Logik in einer eigenen Klasse liegen?","created_at":"2015-11-23T10:34:51Z","updated_at":"2015-11-23T10:34:51Z","html_url":"https://github.com/as-ideas/crowdsource/pull/31#discussion_r45588861","pull_request_url":"https://api.github.com/repos/as-ideas/crowdsource/pulls/31","_links":{"self":{"href":"https://api.github.com/repos/as-ideas/crowdsource/pulls/comments/45588861"},"html":{"href":"https://github.com/as-ideas/crowdsource/pull/31#discussion_r45588861"},"pull_request":{"href":"https://api.github.com/repos/as-ideas/crowdsource/pulls/31"}}},"pull_request":{"url":"https://api.github.com/repos/as-ideas/crowdsource/pulls/31","id":51383880,"html_url":"https://github.com/as-ideas/crowdsource/pull/31","diff_url":"https://github.com/as-ideas/crowdsource/pull/31.diff","patch_url":"https://github.com/as-ideas/crowdsource/pull/31.patch","issue_url":"https://api.github.com/repos/as-ideas/crowdsource/issues/31","number":31,"state":"open","locked":false,"title":"CROWD-35 Projects support a new status \"DEFERRED\"","user":{"login":"wThomas84","id":4039815,"avatar_url":"https://avatars.githubusercontent.com/u/4039815?v=3","gravatar_id":"","url":"https://api.github.com/users/wThomas84","html_url":"https://github.com/wThomas84","followers_url":"https://api.github.com/users/wThomas84/followers","following_url":"https://api.github.com/users/wThomas84/following{/other_user}","gists_url":"https://api.github.com/users/wThomas84/gists{/gist_id}","starred_url":"https://api.github.com/users/wThomas84/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wThomas84/subscriptions","organizations_url":"https://api.github.com/users/wThomas84/orgs","repos_url":"https://api.github.com/users/wThomas84/repos","events_url":"https://api.github.com/users/wThomas84/events{/privacy}","received_events_url":"https://api.github.com/users/wThomas84/received_events","type":"User","site_admin":false},"body":"**See branch feature/CROWD-35_statusDeferred for a more fine grained view of single commits regarding the single tasks of that story, as this is just the interactively rebased branch of the one mentioned**\r\n\r\nCROWD-35 - Adds project status constraints and concerning tests\r\n\r\nCROWD-35 Resolves CROWD-94 and CROWD-95 by preparing backend to support new status deferred\r\n\r\nCROWD-35 Resolves CROWD-104 - Implements dedicated rest endpoint for status modification\r\n\r\nCROWD-35 - CROWD-104 - Adapts endpoint change from previous commit in test code\r\n\r\nCROWD-35 Resolves CROWD-105 - Adds 'Defer' Button in project view\r\n\r\nCROWD-35 Resolves CROWD-106 - Inform user about project changed to status deferred\r\n\r\nCROWD-35 Resolves CROWD-107 - Emphasize deferred projects\r\n\r\nCROWD-35 Resolves CROWD-108 - Implements AT","created_at":"2015-11-20T17:23:51Z","updated_at":"2015-11-23T10:34:51Z","closed_at":null,"merged_at":null,"merge_commit_sha":"60aba9a5e86a1a030830e12d1f10e1d85d25df18","assignee":{"login":"CanardSauvage","id":3428674,"avatar_url":"https://avatars.githubusercontent.com/u/3428674?v=3","gravatar_id":"","url":"https://api.github.com/users/CanardSauvage","html_url":"https://github.com/CanardSauvage","followers_url":"https://api.github.com/users/CanardSauvage/followers","following_url":"https://api.github.com/users/CanardSauvage/following{/other_user}","gists_url":"https://api.github.com/users/CanardSauvage/gists{/gist_id}","starred_url":"https://api.github.com/users/CanardSauvage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CanardSauvage/subscriptions","organizations_url":"https://api.github.com/users/CanardSauvage/orgs","repos_url":"https://api.github.com/users/CanardSauvage/repos","events_url":"https://api.github.com/users/CanardSauvage/events{/privacy}","received_events_url":"https://api.github.com/users/CanardSauvage/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/as-ideas/crowdsource/pulls/31/commits","review_comments_url":"https://api.github.com/repos/as-ideas/crowdsource/pulls/31/comments","review_comment_url":"https://api.github.com/repos/as-ideas/crowdsource/pulls/comments{/number}","comments_url":"https://api.github.com/repos/as-ideas/crowdsource/issues/31/comments","statuses_url":"https://api.github.com/repos/as-ideas/crowdsource/statuses/f07c483b75b433bfc01bb95d783eb419ca54cfe3","head":{"label":"as-ideas:feature/CROWD-35_statusDeferred_IRB","ref":"feature/CROWD-35_statusDeferred_IRB","sha":"f07c483b75b433bfc01bb95d783eb419ca54cfe3","user":{"login":"as-ideas","id":6329093,"avatar_url":"https://avatars.githubusercontent.com/u/6329093?v=3","gravatar_id":"","url":"https://api.github.com/users/as-ideas","html_url":"https://github.com/as-ideas","followers_url":"https://api.github.com/users/as-ideas/followers","following_url":"https://api.github.com/users/as-ideas/following{/other_user}","gists_url":"https://api.github.com/users/as-ideas/gists{/gist_id}","starred_url":"https://api.github.com/users/as-ideas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/as-ideas/subscriptions","organizations_url":"https://api.github.com/users/as-ideas/orgs","repos_url":"https://api.github.com/users/as-ideas/repos","events_url":"https://api.github.com/users/as-ideas/events{/privacy}","received_events_url":"https://api.github.com/users/as-ideas/received_events","type":"Organization","site_admin":false},"repo":{"id":35263104,"name":"crowdsource","full_name":"as-ideas/crowdsource","owner":{"login":"as-ideas","id":6329093,"avatar_url":"https://avatars.githubusercontent.com/u/6329093?v=3","gravatar_id":"","url":"https://api.github.com/users/as-ideas","html_url":"https://github.com/as-ideas","followers_url":"https://api.github.com/users/as-ideas/followers","following_url":"https://api.github.com/users/as-ideas/following{/other_user}","gists_url":"https://api.github.com/users/as-ideas/gists{/gist_id}","starred_url":"https://api.github.com/users/as-ideas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/as-ideas/subscriptions","organizations_url":"https://api.github.com/users/as-ideas/orgs","repos_url":"https://api.github.com/users/as-ideas/repos","events_url":"https://api.github.com/users/as-ideas/events{/privacy}","received_events_url":"https://api.github.com/users/as-ideas/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/as-ideas/crowdsource","description":"a collaborative crowd sourcing and funding tool using virtual currency","fork":false,"url":"https://api.github.com/repos/as-ideas/crowdsource","forks_url":"https://api.github.com/repos/as-ideas/crowdsource/forks","keys_url":"https://api.github.com/repos/as-ideas/crowdsource/keys{/key_id}","collaborators_url":"https://api.github.com/repos/as-ideas/crowdsource/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/as-ideas/crowdsource/teams","hooks_url":"https://api.github.com/repos/as-ideas/crowdsource/hooks","issue_events_url":"https://api.github.com/repos/as-ideas/crowdsource/issues/events{/number}","events_url":"https://api.github.com/repos/as-ideas/crowdsource/events","assignees_url":"https://api.github.com/repos/as-ideas/crowdsource/assignees{/user}","branches_url":"https://api.github.com/repos/as-ideas/crowdsource/branches{/branch}","tags_url":"https://api.github.com/repos/as-ideas/crowdsource/tags","blobs_url":"https://api.github.com/repos/as-ideas/crowdsource/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/as-ideas/crowdsource/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/as-ideas/crowdsource/git/refs{/sha}","trees_url":"https://api.github.com/repos/as-ideas/crowdsource/git/trees{/sha}","statuses_url":"https://api.github.com/repos/as-ideas/crowdsource/statuses/{sha}","languages_url":"https://api.github.com/repos/as-ideas/crowdsource/languages","stargazers_url":"https://api.github.com/repos/as-ideas/crowdsource/stargazers","contributors_url":"https://api.github.com/repos/as-ideas/crowdsource/contributors","subscribers_url":"https://api.github.com/repos/as-ideas/crowdsource/subscribers","subscription_url":"https://api.github.com/repos/as-ideas/crowdsource/subscription","commits_url":"https://api.github.com/repos/as-ideas/crowdsource/commits{/sha}","git_commits_url":"https://api.github.com/repos/as-ideas/crowdsource/git/commits{/sha}","comments_url":"https://api.github.com/repos/as-ideas/crowdsource/comments{/number}","issue_comment_url":"https://api.github.com/repos/as-ideas/crowdsource/issues/comments{/number}","contents_url":"https://api.github.com/repos/as-ideas/crowdsource/contents/{+path}","compare_url":"https://api.github.com/repos/as-ideas/crowdsource/compare/{base}...{head}","merges_url":"https://api.github.com/repos/as-ideas/crowdsource/merges","archive_url":"https://api.github.com/repos/as-ideas/crowdsource/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/as-ideas/crowdsource/downloads","issues_url":"https://api.github.com/repos/as-ideas/crowdsource/issues{/number}","pulls_url":"https://api.github.com/repos/as-ideas/crowdsource/pulls{/number}","milestones_url":"https://api.github.com/repos/as-ideas/crowdsource/milestones{/number}","notifications_url":"https://api.github.com/repos/as-ideas/crowdsource/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/as-ideas/crowdsource/labels{/name}","releases_url":"https://api.github.com/repos/as-ideas/crowdsource/releases{/id}","created_at":"2015-05-08T06:44:55Z","updated_at":"2015-08-04T14:47:43Z","pushed_at":"2015-11-20T17:23:53Z","git_url":"git://github.com/as-ideas/crowdsource.git","ssh_url":"git@github.com:as-ideas/crowdsource.git","clone_url":"https://github.com/as-ideas/crowdsource.git","svn_url":"https://github.com/as-ideas/crowdsource","homepage":null,"size":11213,"stargazers_count":2,"watchers_count":2,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":14,"forks":1,"open_issues":14,"watchers":2,"default_branch":"master"}},"base":{"label":"as-ideas:master","ref":"master","sha":"df29d6aaab1e5d1523e558ce814e689e984462c7","user":{"login":"as-ideas","id":6329093,"avatar_url":"https://avatars.githubusercontent.com/u/6329093?v=3","gravatar_id":"","url":"https://api.github.com/users/as-ideas","html_url":"https://github.com/as-ideas","followers_url":"https://api.github.com/users/as-ideas/followers","following_url":"https://api.github.com/users/as-ideas/following{/other_user}","gists_url":"https://api.github.com/users/as-ideas/gists{/gist_id}","starred_url":"https://api.github.com/users/as-ideas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/as-ideas/subscriptions","organizations_url":"https://api.github.com/users/as-ideas/orgs","repos_url":"https://api.github.com/users/as-ideas/repos","events_url":"https://api.github.com/users/as-ideas/events{/privacy}","received_events_url":"https://api.github.com/users/as-ideas/received_events","type":"Organization","site_admin":false},"repo":{"id":35263104,"name":"crowdsource","full_name":"as-ideas/crowdsource","owner":{"login":"as-ideas","id":6329093,"avatar_url":"https://avatars.githubusercontent.com/u/6329093?v=3","gravatar_id":"","url":"https://api.github.com/users/as-ideas","html_url":"https://github.com/as-ideas","followers_url":"https://api.github.com/users/as-ideas/followers","following_url":"https://api.github.com/users/as-ideas/following{/other_user}","gists_url":"https://api.github.com/users/as-ideas/gists{/gist_id}","starred_url":"https://api.github.com/users/as-ideas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/as-ideas/subscriptions","organizations_url":"https://api.github.com/users/as-ideas/orgs","repos_url":"https://api.github.com/users/as-ideas/repos","events_url":"https://api.github.com/users/as-ideas/events{/privacy}","received_events_url":"https://api.github.com/users/as-ideas/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/as-ideas/crowdsource","description":"a collaborative crowd sourcing and funding tool using virtual currency","fork":false,"url":"https://api.github.com/repos/as-ideas/crowdsource","forks_url":"https://api.github.com/repos/as-ideas/crowdsource/forks","keys_url":"https://api.github.com/repos/as-ideas/crowdsource/keys{/key_id}","collaborators_url":"https://api.github.com/repos/as-ideas/crowdsource/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/as-ideas/crowdsource/teams","hooks_url":"https://api.github.com/repos/as-ideas/crowdsource/hooks","issue_events_url":"https://api.github.com/repos/as-ideas/crowdsource/issues/events{/number}","events_url":"https://api.github.com/repos/as-ideas/crowdsource/events","assignees_url":"https://api.github.com/repos/as-ideas/crowdsource/assignees{/user}","branches_url":"https://api.github.com/repos/as-ideas/crowdsource/branches{/branch}","tags_url":"https://api.github.com/repos/as-ideas/crowdsource/tags","blobs_url":"https://api.github.com/repos/as-ideas/crowdsource/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/as-ideas/crowdsource/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/as-ideas/crowdsource/git/refs{/sha}","trees_url":"https://api.github.com/repos/as-ideas/crowdsource/git/trees{/sha}","statuses_url":"https://api.github.com/repos/as-ideas/crowdsource/statuses/{sha}","languages_url":"https://api.github.com/repos/as-ideas/crowdsource/languages","stargazers_url":"https://api.github.com/repos/as-ideas/crowdsource/stargazers","contributors_url":"https://api.github.com/repos/as-ideas/crowdsource/contributors","subscribers_url":"https://api.github.com/repos/as-ideas/crowdsource/subscribers","subscription_url":"https://api.github.com/repos/as-ideas/crowdsource/subscription","commits_url":"https://api.github.com/repos/as-ideas/crowdsource/commits{/sha}","git_commits_url":"https://api.github.com/repos/as-ideas/crowdsource/git/commits{/sha}","comments_url":"https://api.github.com/repos/as-ideas/crowdsource/comments{/number}","issue_comment_url":"https://api.github.com/repos/as-ideas/crowdsource/issues/comments{/number}","contents_url":"https://api.github.com/repos/as-ideas/crowdsource/contents/{+path}","compare_url":"https://api.github.com/repos/as-ideas/crowdsource/compare/{base}...{head}","merges_url":"https://api.github.com/repos/as-ideas/crowdsource/merges","archive_url":"https://api.github.com/repos/as-ideas/crowdsource/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/as-ideas/crowdsource/downloads","issues_url":"https://api.github.com/repos/as-ideas/crowdsource/issues{/number}","pulls_url":"https://api.github.com/repos/as-ideas/crowdsource/pulls{/number}","milestones_url":"https://api.github.com/repos/as-ideas/crowdsource/milestones{/number}","notifications_url":"https://api.github.com/repos/as-ideas/crowdsource/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/as-ideas/crowdsource/labels{/name}","releases_url":"https://api.github.com/repos/as-ideas/crowdsource/releases{/id}","created_at":"2015-05-08T06:44:55Z","updated_at":"2015-08-04T14:47:43Z","pushed_at":"2015-11-20T17:23:53Z","git_url":"git://github.com/as-ideas/crowdsource.git","ssh_url":"git@github.com:as-ideas/crowdsource.git","clone_url":"https://github.com/as-ideas/crowdsource.git","svn_url":"https://github.com/as-ideas/crowdsource","homepage":null,"size":11213,"stargazers_count":2,"watchers_count":2,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":14,"forks":1,"open_issues":14,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/as-ideas/crowdsource/pulls/31"},"html":{"href":"https://github.com/as-ideas/crowdsource/pull/31"},"issue":{"href":"https://api.github.com/repos/as-ideas/crowdsource/issues/31"},"comments":{"href":"https://api.github.com/repos/as-ideas/crowdsource/issues/31/comments"},"review_comments":{"href":"https://api.github.com/repos/as-ideas/crowdsource/pulls/31/comments"},"review_comment":{"href":"https://api.github.com/repos/as-ideas/crowdsource/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/as-ideas/crowdsource/pulls/31/commits"},"statuses":{"href":"https://api.github.com/repos/as-ideas/crowdsource/statuses/f07c483b75b433bfc01bb95d783eb419ca54cfe3"}}}}