{"action":"created","comment":{"url":"https://api.github.com/repos/ConversationIM/backend/pulls/comments/46364487","id":46364487,"diff_hunk":"@@ -101,7 +101,44 @@ def create_conversation(conversation_id, creator, participants):\n                 result.append(participant)\n                 \n         return result\n-    \n+\n+    @staticmethod\n+    def remove_identifier(email):\n+        \"\"\"\n+        Removes the provided email from the internal mapping\n+        of users to socket IDs\n+        \n+        :email        the email address of a user\n+        \"\"\"\n+        \n+        if email in SocketService._sockets:\n+            del SocketService._sockets[email]\n+\n+    @staticmethod\n+    def leave_conversation(socket_id, conversation_id, participant):","path":"app/sockets/service.py","position":19,"original_position":19,"commit_id":"010aabfc6e863eb78af7e968368ee13f0d996b99","original_commit_id":"010aabfc6e863eb78af7e968368ee13f0d996b99","user":{"login":"rchen45","id":14032334,"avatar_url":"https://avatars.githubusercontent.com/u/14032334?v=3","gravatar_id":"","url":"https://api.github.com/users/rchen45","html_url":"https://github.com/rchen45","followers_url":"https://api.github.com/users/rchen45/followers","following_url":"https://api.github.com/users/rchen45/following{/other_user}","gists_url":"https://api.github.com/users/rchen45/gists{/gist_id}","starred_url":"https://api.github.com/users/rchen45/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rchen45/subscriptions","organizations_url":"https://api.github.com/users/rchen45/orgs","repos_url":"https://api.github.com/users/rchen45/repos","events_url":"https://api.github.com/users/rchen45/events{/privacy}","received_events_url":"https://api.github.com/users/rchen45/received_events","type":"User","site_admin":false},"body":"Fixed","created_at":"2015-12-02T00:59:32Z","updated_at":"2015-12-02T00:59:32Z","html_url":"https://github.com/ConversationIM/backend/pull/12#discussion_r46364487","pull_request_url":"https://api.github.com/repos/ConversationIM/backend/pulls/12","_links":{"self":{"href":"https://api.github.com/repos/ConversationIM/backend/pulls/comments/46364487"},"html":{"href":"https://github.com/ConversationIM/backend/pull/12#discussion_r46364487"},"pull_request":{"href":"https://api.github.com/repos/ConversationIM/backend/pulls/12"}}},"pull_request":{"url":"https://api.github.com/repos/ConversationIM/backend/pulls/12","id":51949100,"html_url":"https://github.com/ConversationIM/backend/pull/12","diff_url":"https://github.com/ConversationIM/backend/pull/12.diff","patch_url":"https://github.com/ConversationIM/backend/pull/12.patch","issue_url":"https://api.github.com/repos/ConversationIM/backend/issues/12","number":12,"state":"open","locked":false,"title":"Added removal methods","user":{"login":"rchen45","id":14032334,"avatar_url":"https://avatars.githubusercontent.com/u/14032334?v=3","gravatar_id":"","url":"https://api.github.com/users/rchen45","html_url":"https://github.com/rchen45","followers_url":"https://api.github.com/users/rchen45/followers","following_url":"https://api.github.com/users/rchen45/following{/other_user}","gists_url":"https://api.github.com/users/rchen45/gists{/gist_id}","starred_url":"https://api.github.com/users/rchen45/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rchen45/subscriptions","organizations_url":"https://api.github.com/users/rchen45/orgs","repos_url":"https://api.github.com/users/rchen45/repos","events_url":"https://api.github.com/users/rchen45/events{/privacy}","received_events_url":"https://api.github.com/users/rchen45/received_events","type":"User","site_admin":false},"body":"Starting to work on removing users","created_at":"2015-11-26T22:47:06Z","updated_at":"2015-12-02T00:59:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8e0648a4a82efa8ed1b9af12d45533b16c674019","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ConversationIM/backend/pulls/12/commits","review_comments_url":"https://api.github.com/repos/ConversationIM/backend/pulls/12/comments","review_comment_url":"https://api.github.com/repos/ConversationIM/backend/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ConversationIM/backend/issues/12/comments","statuses_url":"https://api.github.com/repos/ConversationIM/backend/statuses/010aabfc6e863eb78af7e968368ee13f0d996b99","head":{"label":"rchen45:feature/multiple-conversations","ref":"feature/multiple-conversations","sha":"010aabfc6e863eb78af7e968368ee13f0d996b99","user":{"login":"rchen45","id":14032334,"avatar_url":"https://avatars.githubusercontent.com/u/14032334?v=3","gravatar_id":"","url":"https://api.github.com/users/rchen45","html_url":"https://github.com/rchen45","followers_url":"https://api.github.com/users/rchen45/followers","following_url":"https://api.github.com/users/rchen45/following{/other_user}","gists_url":"https://api.github.com/users/rchen45/gists{/gist_id}","starred_url":"https://api.github.com/users/rchen45/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rchen45/subscriptions","organizations_url":"https://api.github.com/users/rchen45/orgs","repos_url":"https://api.github.com/users/rchen45/repos","events_url":"https://api.github.com/users/rchen45/events{/privacy}","received_events_url":"https://api.github.com/users/rchen45/received_events","type":"User","site_admin":false},"repo":{"id":46886774,"name":"backend","full_name":"rchen45/backend","owner":{"login":"rchen45","id":14032334,"avatar_url":"https://avatars.githubusercontent.com/u/14032334?v=3","gravatar_id":"","url":"https://api.github.com/users/rchen45","html_url":"https://github.com/rchen45","followers_url":"https://api.github.com/users/rchen45/followers","following_url":"https://api.github.com/users/rchen45/following{/other_user}","gists_url":"https://api.github.com/users/rchen45/gists{/gist_id}","starred_url":"https://api.github.com/users/rchen45/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rchen45/subscriptions","organizations_url":"https://api.github.com/users/rchen45/orgs","repos_url":"https://api.github.com/users/rchen45/repos","events_url":"https://api.github.com/users/rchen45/events{/privacy}","received_events_url":"https://api.github.com/users/rchen45/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rchen45/backend","description":"Backend API layer for ConversationIM","fork":true,"url":"https://api.github.com/repos/rchen45/backend","forks_url":"https://api.github.com/repos/rchen45/backend/forks","keys_url":"https://api.github.com/repos/rchen45/backend/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rchen45/backend/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rchen45/backend/teams","hooks_url":"https://api.github.com/repos/rchen45/backend/hooks","issue_events_url":"https://api.github.com/repos/rchen45/backend/issues/events{/number}","events_url":"https://api.github.com/repos/rchen45/backend/events","assignees_url":"https://api.github.com/repos/rchen45/backend/assignees{/user}","branches_url":"https://api.github.com/repos/rchen45/backend/branches{/branch}","tags_url":"https://api.github.com/repos/rchen45/backend/tags","blobs_url":"https://api.github.com/repos/rchen45/backend/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rchen45/backend/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rchen45/backend/git/refs{/sha}","trees_url":"https://api.github.com/repos/rchen45/backend/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rchen45/backend/statuses/{sha}","languages_url":"https://api.github.com/repos/rchen45/backend/languages","stargazers_url":"https://api.github.com/repos/rchen45/backend/stargazers","contributors_url":"https://api.github.com/repos/rchen45/backend/contributors","subscribers_url":"https://api.github.com/repos/rchen45/backend/subscribers","subscription_url":"https://api.github.com/repos/rchen45/backend/subscription","commits_url":"https://api.github.com/repos/rchen45/backend/commits{/sha}","git_commits_url":"https://api.github.com/repos/rchen45/backend/git/commits{/sha}","comments_url":"https://api.github.com/repos/rchen45/backend/comments{/number}","issue_comment_url":"https://api.github.com/repos/rchen45/backend/issues/comments{/number}","contents_url":"https://api.github.com/repos/rchen45/backend/contents/{+path}","compare_url":"https://api.github.com/repos/rchen45/backend/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rchen45/backend/merges","archive_url":"https://api.github.com/repos/rchen45/backend/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rchen45/backend/downloads","issues_url":"https://api.github.com/repos/rchen45/backend/issues{/number}","pulls_url":"https://api.github.com/repos/rchen45/backend/pulls{/number}","milestones_url":"https://api.github.com/repos/rchen45/backend/milestones{/number}","notifications_url":"https://api.github.com/repos/rchen45/backend/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rchen45/backend/labels{/name}","releases_url":"https://api.github.com/repos/rchen45/backend/releases{/id}","created_at":"2015-11-25T21:02:56Z","updated_at":"2015-11-25T21:02:57Z","pushed_at":"2015-11-30T04:31:38Z","git_url":"git://github.com/rchen45/backend.git","ssh_url":"git@github.com:rchen45/backend.git","clone_url":"https://github.com/rchen45/backend.git","svn_url":"https://github.com/rchen45/backend","homepage":"","size":70,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ConversationIM:feature/multiple-conversations","ref":"feature/multiple-conversations","sha":"97e9e41e53e7d5f1d66fe7099a9c499d4ad2554c","user":{"login":"ConversationIM","id":14255502,"avatar_url":"https://avatars.githubusercontent.com/u/14255502?v=3","gravatar_id":"","url":"https://api.github.com/users/ConversationIM","html_url":"https://github.com/ConversationIM","followers_url":"https://api.github.com/users/ConversationIM/followers","following_url":"https://api.github.com/users/ConversationIM/following{/other_user}","gists_url":"https://api.github.com/users/ConversationIM/gists{/gist_id}","starred_url":"https://api.github.com/users/ConversationIM/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ConversationIM/subscriptions","organizations_url":"https://api.github.com/users/ConversationIM/orgs","repos_url":"https://api.github.com/users/ConversationIM/repos","events_url":"https://api.github.com/users/ConversationIM/events{/privacy}","received_events_url":"https://api.github.com/users/ConversationIM/received_events","type":"Organization","site_admin":false},"repo":{"id":42385573,"name":"backend","full_name":"ConversationIM/backend","owner":{"login":"ConversationIM","id":14255502,"avatar_url":"https://avatars.githubusercontent.com/u/14255502?v=3","gravatar_id":"","url":"https://api.github.com/users/ConversationIM","html_url":"https://github.com/ConversationIM","followers_url":"https://api.github.com/users/ConversationIM/followers","following_url":"https://api.github.com/users/ConversationIM/following{/other_user}","gists_url":"https://api.github.com/users/ConversationIM/gists{/gist_id}","starred_url":"https://api.github.com/users/ConversationIM/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ConversationIM/subscriptions","organizations_url":"https://api.github.com/users/ConversationIM/orgs","repos_url":"https://api.github.com/users/ConversationIM/repos","events_url":"https://api.github.com/users/ConversationIM/events{/privacy}","received_events_url":"https://api.github.com/users/ConversationIM/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ConversationIM/backend","description":"Backend API layer for ConversationIM","fork":false,"url":"https://api.github.com/repos/ConversationIM/backend","forks_url":"https://api.github.com/repos/ConversationIM/backend/forks","keys_url":"https://api.github.com/repos/ConversationIM/backend/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ConversationIM/backend/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ConversationIM/backend/teams","hooks_url":"https://api.github.com/repos/ConversationIM/backend/hooks","issue_events_url":"https://api.github.com/repos/ConversationIM/backend/issues/events{/number}","events_url":"https://api.github.com/repos/ConversationIM/backend/events","assignees_url":"https://api.github.com/repos/ConversationIM/backend/assignees{/user}","branches_url":"https://api.github.com/repos/ConversationIM/backend/branches{/branch}","tags_url":"https://api.github.com/repos/ConversationIM/backend/tags","blobs_url":"https://api.github.com/repos/ConversationIM/backend/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ConversationIM/backend/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ConversationIM/backend/git/refs{/sha}","trees_url":"https://api.github.com/repos/ConversationIM/backend/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ConversationIM/backend/statuses/{sha}","languages_url":"https://api.github.com/repos/ConversationIM/backend/languages","stargazers_url":"https://api.github.com/repos/ConversationIM/backend/stargazers","contributors_url":"https://api.github.com/repos/ConversationIM/backend/contributors","subscribers_url":"https://api.github.com/repos/ConversationIM/backend/subscribers","subscription_url":"https://api.github.com/repos/ConversationIM/backend/subscription","commits_url":"https://api.github.com/repos/ConversationIM/backend/commits{/sha}","git_commits_url":"https://api.github.com/repos/ConversationIM/backend/git/commits{/sha}","comments_url":"https://api.github.com/repos/ConversationIM/backend/comments{/number}","issue_comment_url":"https://api.github.com/repos/ConversationIM/backend/issues/comments{/number}","contents_url":"https://api.github.com/repos/ConversationIM/backend/contents/{+path}","compare_url":"https://api.github.com/repos/ConversationIM/backend/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ConversationIM/backend/merges","archive_url":"https://api.github.com/repos/ConversationIM/backend/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ConversationIM/backend/downloads","issues_url":"https://api.github.com/repos/ConversationIM/backend/issues{/number}","pulls_url":"https://api.github.com/repos/ConversationIM/backend/pulls{/number}","milestones_url":"https://api.github.com/repos/ConversationIM/backend/milestones{/number}","notifications_url":"https://api.github.com/repos/ConversationIM/backend/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ConversationIM/backend/labels{/name}","releases_url":"https://api.github.com/repos/ConversationIM/backend/releases{/id}","created_at":"2015-09-13T06:00:37Z","updated_at":"2015-09-13T16:41:59Z","pushed_at":"2015-11-30T04:31:38Z","git_url":"git://github.com/ConversationIM/backend.git","ssh_url":"git@github.com:ConversationIM/backend.git","clone_url":"https://github.com/ConversationIM/backend.git","svn_url":"https://github.com/ConversationIM/backend","homepage":"","size":68,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ConversationIM/backend/pulls/12"},"html":{"href":"https://github.com/ConversationIM/backend/pull/12"},"issue":{"href":"https://api.github.com/repos/ConversationIM/backend/issues/12"},"comments":{"href":"https://api.github.com/repos/ConversationIM/backend/issues/12/comments"},"review_comments":{"href":"https://api.github.com/repos/ConversationIM/backend/pulls/12/comments"},"review_comment":{"href":"https://api.github.com/repos/ConversationIM/backend/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ConversationIM/backend/pulls/12/commits"},"statuses":{"href":"https://api.github.com/repos/ConversationIM/backend/statuses/010aabfc6e863eb78af7e968368ee13f0d996b99"}}}}