{"action":"created","comment":{"url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/pulls/comments/169276266","pull_request_review_id":97773798,"id":169276266,"diff_hunk":"@@ -0,0 +1,136 @@\n+/*\n+ *\n+ * Copyright 2018 EMBL - European Bioinformatics Institute\n+ *\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+ *\n+ *      http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ *\n+ */\n+package uk.ac.ebi.ampt2d.accession.common.accessioning;\n+\n+import org.springframework.beans.factory.InitializingBean;\n+import uk.ac.ebi.ampt2d.accession.common.utils.DigestFunction;\n+import uk.ac.ebi.ampt2d.accession.common.utils.HashingFunction;\n+import uk.ac.ebi.ampt2d.accession.common.generators.AccessionGenerator;\n+import uk.ac.ebi.ampt2d.accession.common.persistence.DatabaseService;\n+\n+import java.util.List;\n+import java.util.Map;\n+import java.util.stream.Collectors;\n+\n+/**\n+ * A service that provides accessions for objects\n+ *\n+ * @param <MODEL>\n+ * @param <ACCESSION>\n+ * @param <HASH>\n+ */\n+public class BasicAccessioningService<MODEL, HASH, ACCESSION> implements InitializingBean,\n+        AccessioningService<MODEL, ACCESSION> {\n+\n+    private AccessionGenerator<MODEL, ACCESSION> accessionGenerator;\n+\n+    private DatabaseService<MODEL, HASH, ACCESSION> dbService;\n+\n+    private final DigestFunction<MODEL> digestFunction;\n+\n+    private HashingFunction<HASH> hashingFunction;\n+\n+    /**\n+     * Basic accessioning service constructor, requires an accession generator, a database service and a hashing\n+     * function, it also allows the registering of a init function.\n+     *\n+     * @param accessionGenerator\n+     * @param dbService\n+     * @param hashingFunction\n+     */\n+    public BasicAccessioningService(AccessionGenerator<MODEL, ACCESSION> accessionGenerator,\n+                                    DatabaseService<MODEL, HASH, ACCESSION> dbService,\n+                                    DigestFunction<MODEL> digestFunction,\n+                                    HashingFunction<HASH> hashingFunction) {\n+        this.accessionGenerator = accessionGenerator;\n+        this.dbService = dbService;\n+        this.digestFunction = digestFunction;\n+        this.hashingFunction = hashingFunction;\n+    }\n+\n+    /**\n+     * Get accessions for a list of messages. It looks for the object's accessions in a repository, and it they don't\n+     * exist, generate new ones, storing them in the repository\n+     *\n+     * @param messages\n+     * @return\n+     */\n+    @Override\n+    public Map<ACCESSION, MODEL> getAccessions(List<? extends MODEL> messages) {\n+        Map<HASH, MODEL> hashToMessages = mapHashOfMessages(messages);\n+        Map<HASH, ACCESSION> existingAccessions = dbService.getExistingAccessions(hashToMessages.keySet());\n+        Map<HASH, MODEL> newMessages = filterNotExists(hashToMessages, existingAccessions);\n+\n+        Map<ACCESSION, MODEL> accessions = joinExistingAccessionsWithMessages(existingAccessions, hashToMessages);\n+        if (!newMessages.isEmpty()) {\n+            accessions.putAll(generateAccessions(newMessages));\n+        }\n+        return accessions;\n+    }\n+\n+    /**\n+     * Digest messages, hash them and map them. If Two messages have the same hash keep the first one.\n+     *\n+     * @param messages\n+     * @return\n+     */\n+    private Map<HASH, MODEL> mapHashOfMessages(List<? extends MODEL> messages) {\n+        return messages.stream().collect(Collectors.toMap(digestFunction.andThen(hashingFunction), e -> e, (r, o) -> r));\n+    }","path":"src/main/java/uk/ac/ebi/ampt2d/accession/common/accessioning/BasicAccessioningService.java","position":94,"original_position":94,"commit_id":"f1737eb92a6f0f66340204e27cce9a841674d0da","original_commit_id":"b1420c6a7169c0a57778fa2f9cf87ab373b28adb","user":{"login":"selvaebi","id":33631243,"avatar_url":"https://avatars2.githubusercontent.com/u/33631243?v=4","gravatar_id":"","url":"https://api.github.com/users/selvaebi","html_url":"https://github.com/selvaebi","followers_url":"https://api.github.com/users/selvaebi/followers","following_url":"https://api.github.com/users/selvaebi/following{/other_user}","gists_url":"https://api.github.com/users/selvaebi/gists{/gist_id}","starred_url":"https://api.github.com/users/selvaebi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/selvaebi/subscriptions","organizations_url":"https://api.github.com/users/selvaebi/orgs","repos_url":"https://api.github.com/users/selvaebi/repos","events_url":"https://api.github.com/users/selvaebi/events{/privacy}","received_events_url":"https://api.github.com/users/selvaebi/received_events","type":"User","site_admin":false},"body":"digestFunction.andThen(hashingFunction) does this make hash and accession the same ?","created_at":"2018-02-20T10:31:41Z","updated_at":"2018-02-20T10:31:41Z","html_url":"https://github.com/EBIvariation/amp-t2d-accession/pull/12#discussion_r169276266","pull_request_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/pulls/12","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/pulls/comments/169276266"},"html":{"href":"https://github.com/EBIvariation/amp-t2d-accession/pull/12#discussion_r169276266"},"pull_request":{"href":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/pulls/12"}}},"pull_request":{"url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/pulls/12","id":169958934,"html_url":"https://github.com/EBIvariation/amp-t2d-accession/pull/12","diff_url":"https://github.com/EBIvariation/amp-t2d-accession/pull/12.diff","patch_url":"https://github.com/EBIvariation/amp-t2d-accession/pull/12.patch","issue_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/issues/12","number":12,"state":"open","locked":false,"title":"T2D-116 T2D-131 Accession refactor - Part 1","user":{"login":"jorizci","id":13378840,"avatar_url":"https://avatars0.githubusercontent.com/u/13378840?v=4","gravatar_id":"","url":"https://api.github.com/users/jorizci","html_url":"https://github.com/jorizci","followers_url":"https://api.github.com/users/jorizci/followers","following_url":"https://api.github.com/users/jorizci/following{/other_user}","gists_url":"https://api.github.com/users/jorizci/gists{/gist_id}","starred_url":"https://api.github.com/users/jorizci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jorizci/subscriptions","organizations_url":"https://api.github.com/users/jorizci/orgs","repos_url":"https://api.github.com/users/jorizci/repos","events_url":"https://api.github.com/users/jorizci/events{/privacy}","received_events_url":"https://api.github.com/users/jorizci/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-02-19T13:21:40Z","updated_at":"2018-02-20T10:31:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e7533c0877e1f674bc4e5400fed5c5803b7e413c","assignee":null,"assignees":[],"requested_reviewers":[{"login":"cyenyxe","id":1433407,"avatar_url":"https://avatars0.githubusercontent.com/u/1433407?v=4","gravatar_id":"","url":"https://api.github.com/users/cyenyxe","html_url":"https://github.com/cyenyxe","followers_url":"https://api.github.com/users/cyenyxe/followers","following_url":"https://api.github.com/users/cyenyxe/following{/other_user}","gists_url":"https://api.github.com/users/cyenyxe/gists{/gist_id}","starred_url":"https://api.github.com/users/cyenyxe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cyenyxe/subscriptions","organizations_url":"https://api.github.com/users/cyenyxe/orgs","repos_url":"https://api.github.com/users/cyenyxe/repos","events_url":"https://api.github.com/users/cyenyxe/events{/privacy}","received_events_url":"https://api.github.com/users/cyenyxe/received_events","type":"User","site_admin":false},{"login":"pabarcgar","id":2338089,"avatar_url":"https://avatars1.githubusercontent.com/u/2338089?v=4","gravatar_id":"","url":"https://api.github.com/users/pabarcgar","html_url":"https://github.com/pabarcgar","followers_url":"https://api.github.com/users/pabarcgar/followers","following_url":"https://api.github.com/users/pabarcgar/following{/other_user}","gists_url":"https://api.github.com/users/pabarcgar/gists{/gist_id}","starred_url":"https://api.github.com/users/pabarcgar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pabarcgar/subscriptions","organizations_url":"https://api.github.com/users/pabarcgar/orgs","repos_url":"https://api.github.com/users/pabarcgar/repos","events_url":"https://api.github.com/users/pabarcgar/events{/privacy}","received_events_url":"https://api.github.com/users/pabarcgar/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/pulls/12/commits","review_comments_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/pulls/12/comments","review_comment_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/pulls/comments{/number}","comments_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/issues/12/comments","statuses_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/statuses/f1737eb92a6f0f66340204e27cce9a841674d0da","head":{"label":"jorizci:T2D-116","ref":"T2D-116","sha":"f1737eb92a6f0f66340204e27cce9a841674d0da","user":{"login":"jorizci","id":13378840,"avatar_url":"https://avatars0.githubusercontent.com/u/13378840?v=4","gravatar_id":"","url":"https://api.github.com/users/jorizci","html_url":"https://github.com/jorizci","followers_url":"https://api.github.com/users/jorizci/followers","following_url":"https://api.github.com/users/jorizci/following{/other_user}","gists_url":"https://api.github.com/users/jorizci/gists{/gist_id}","starred_url":"https://api.github.com/users/jorizci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jorizci/subscriptions","organizations_url":"https://api.github.com/users/jorizci/orgs","repos_url":"https://api.github.com/users/jorizci/repos","events_url":"https://api.github.com/users/jorizci/events{/privacy}","received_events_url":"https://api.github.com/users/jorizci/received_events","type":"User","site_admin":false},"repo":{"id":111921030,"name":"amp-t2d-accession","full_name":"jorizci/amp-t2d-accession","owner":{"login":"jorizci","id":13378840,"avatar_url":"https://avatars0.githubusercontent.com/u/13378840?v=4","gravatar_id":"","url":"https://api.github.com/users/jorizci","html_url":"https://github.com/jorizci","followers_url":"https://api.github.com/users/jorizci/followers","following_url":"https://api.github.com/users/jorizci/following{/other_user}","gists_url":"https://api.github.com/users/jorizci/gists{/gist_id}","starred_url":"https://api.github.com/users/jorizci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jorizci/subscriptions","organizations_url":"https://api.github.com/users/jorizci/orgs","repos_url":"https://api.github.com/users/jorizci/repos","events_url":"https://api.github.com/users/jorizci/events{/privacy}","received_events_url":"https://api.github.com/users/jorizci/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jorizci/amp-t2d-accession","description":"Generic service for accessioning of any type of object","fork":true,"url":"https://api.github.com/repos/jorizci/amp-t2d-accession","forks_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/forks","keys_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/teams","hooks_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/hooks","issue_events_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/issues/events{/number}","events_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/events","assignees_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/assignees{/user}","branches_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/branches{/branch}","tags_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/tags","blobs_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/git/refs{/sha}","trees_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/statuses/{sha}","languages_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/languages","stargazers_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/stargazers","contributors_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/contributors","subscribers_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/subscribers","subscription_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/subscription","commits_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/commits{/sha}","git_commits_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/git/commits{/sha}","comments_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/comments{/number}","issue_comment_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/issues/comments{/number}","contents_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/contents/{+path}","compare_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/merges","archive_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/downloads","issues_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/issues{/number}","pulls_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/pulls{/number}","milestones_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/milestones{/number}","notifications_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/labels{/name}","releases_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/releases{/id}","deployments_url":"https://api.github.com/repos/jorizci/amp-t2d-accession/deployments","created_at":"2017-11-24T13:22:24Z","updated_at":"2017-11-24T13:22:26Z","pushed_at":"2018-02-20T09:55:43Z","git_url":"git://github.com/jorizci/amp-t2d-accession.git","ssh_url":"git@github.com:jorizci/amp-t2d-accession.git","clone_url":"https://github.com/jorizci/amp-t2d-accession.git","svn_url":"https://github.com/jorizci/amp-t2d-accession","homepage":null,"size":269,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"EBIvariation:master","ref":"master","sha":"3446c80009fd07bf316d09fa2c37bc549adbef19","user":{"login":"EBIvariation","id":6419333,"avatar_url":"https://avatars1.githubusercontent.com/u/6419333?v=4","gravatar_id":"","url":"https://api.github.com/users/EBIvariation","html_url":"https://github.com/EBIvariation","followers_url":"https://api.github.com/users/EBIvariation/followers","following_url":"https://api.github.com/users/EBIvariation/following{/other_user}","gists_url":"https://api.github.com/users/EBIvariation/gists{/gist_id}","starred_url":"https://api.github.com/users/EBIvariation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EBIvariation/subscriptions","organizations_url":"https://api.github.com/users/EBIvariation/orgs","repos_url":"https://api.github.com/users/EBIvariation/repos","events_url":"https://api.github.com/users/EBIvariation/events{/privacy}","received_events_url":"https://api.github.com/users/EBIvariation/received_events","type":"Organization","site_admin":false},"repo":{"id":84810176,"name":"amp-t2d-accession","full_name":"EBIvariation/amp-t2d-accession","owner":{"login":"EBIvariation","id":6419333,"avatar_url":"https://avatars1.githubusercontent.com/u/6419333?v=4","gravatar_id":"","url":"https://api.github.com/users/EBIvariation","html_url":"https://github.com/EBIvariation","followers_url":"https://api.github.com/users/EBIvariation/followers","following_url":"https://api.github.com/users/EBIvariation/following{/other_user}","gists_url":"https://api.github.com/users/EBIvariation/gists{/gist_id}","starred_url":"https://api.github.com/users/EBIvariation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EBIvariation/subscriptions","organizations_url":"https://api.github.com/users/EBIvariation/orgs","repos_url":"https://api.github.com/users/EBIvariation/repos","events_url":"https://api.github.com/users/EBIvariation/events{/privacy}","received_events_url":"https://api.github.com/users/EBIvariation/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/EBIvariation/amp-t2d-accession","description":"Generic service for accessioning of any type of object","fork":false,"url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession","forks_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/forks","keys_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/keys{/key_id}","collaborators_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/teams","hooks_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/hooks","issue_events_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/issues/events{/number}","events_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/events","assignees_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/assignees{/user}","branches_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/branches{/branch}","tags_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/tags","blobs_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/git/refs{/sha}","trees_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/git/trees{/sha}","statuses_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/statuses/{sha}","languages_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/languages","stargazers_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/stargazers","contributors_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/contributors","subscribers_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/subscribers","subscription_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/subscription","commits_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/commits{/sha}","git_commits_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/git/commits{/sha}","comments_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/comments{/number}","issue_comment_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/issues/comments{/number}","contents_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/contents/{+path}","compare_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/compare/{base}...{head}","merges_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/merges","archive_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/downloads","issues_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/issues{/number}","pulls_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/pulls{/number}","milestones_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/milestones{/number}","notifications_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/labels{/name}","releases_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/releases{/id}","deployments_url":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/deployments","created_at":"2017-03-13T09:51:26Z","updated_at":"2017-03-31T14:13:14Z","pushed_at":"2018-02-20T10:02:48Z","git_url":"git://github.com/EBIvariation/amp-t2d-accession.git","ssh_url":"git@github.com:EBIvariation/amp-t2d-accession.git","clone_url":"https://github.com/EBIvariation/amp-t2d-accession.git","svn_url":"https://github.com/EBIvariation/amp-t2d-accession","homepage":null,"size":230,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":5,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/pulls/12"},"html":{"href":"https://github.com/EBIvariation/amp-t2d-accession/pull/12"},"issue":{"href":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/issues/12"},"comments":{"href":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/issues/12/comments"},"review_comments":{"href":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/pulls/12/comments"},"review_comment":{"href":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/pulls/12/commits"},"statuses":{"href":"https://api.github.com/repos/EBIvariation/amp-t2d-accession/statuses/f1737eb92a6f0f66340204e27cce9a841674d0da"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"selvaebi"}}