{"action":"created","comment":{"url":"https://api.github.com/repos/18F/midas/pulls/comments/34908101","id":34908101,"diff_hunk":"@@ -49,6 +50,7 @@ function search(target, req, res) {\n       }\n     });\n \n+    // TODO: needs escaping to prevent SQL injection","path":"api/controllers/SearchController.js","position":14,"original_position":14,"commit_id":"48571ddcb00f6d74dcd7d9c8d1eec7f66454e17f","original_commit_id":"48571ddcb00f6d74dcd7d9c8d1eec7f66454e17f","user":{"login":"dhcole","id":170641,"avatar_url":"https://avatars.githubusercontent.com/u/170641?v=3","gravatar_id":"","url":"https://api.github.com/users/dhcole","html_url":"https://github.com/dhcole","followers_url":"https://api.github.com/users/dhcole/followers","following_url":"https://api.github.com/users/dhcole/following{/other_user}","gists_url":"https://api.github.com/users/dhcole/gists{/gist_id}","starred_url":"https://api.github.com/users/dhcole/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dhcole/subscriptions","organizations_url":"https://api.github.com/users/dhcole/orgs","repos_url":"https://api.github.com/users/dhcole/repos","events_url":"https://api.github.com/users/dhcole/events{/privacy}","received_events_url":"https://api.github.com/users/dhcole/received_events","type":"User","site_admin":false},"body":"The `pg` library does this: https://github.com/brianc/node-postgres/wiki/FAQ#8-does-node-postgres-handle-sql-injection","created_at":"2015-07-17T16:51:04Z","updated_at":"2015-07-17T16:51:04Z","html_url":"https://github.com/18F/midas/pull/904#discussion_r34908101","pull_request_url":"https://api.github.com/repos/18F/midas/pulls/904","_links":{"self":{"href":"https://api.github.com/repos/18F/midas/pulls/comments/34908101"},"html":{"href":"https://github.com/18F/midas/pull/904#discussion_r34908101"},"pull_request":{"href":"https://api.github.com/repos/18F/midas/pulls/904"}}},"pull_request":{"url":"https://api.github.com/repos/18F/midas/pulls/904","id":39752872,"html_url":"https://github.com/18F/midas/pull/904","diff_url":"https://github.com/18F/midas/pull/904.diff","patch_url":"https://github.com/18F/midas/pull/904.patch","issue_url":"https://api.github.com/repos/18F/midas/issues/904","number":904,"state":"open","locked":false,"title":"Browse people","user":{"login":"sefk","id":621565,"avatar_url":"https://avatars.githubusercontent.com/u/621565?v=3","gravatar_id":"","url":"https://api.github.com/users/sefk","html_url":"https://github.com/sefk","followers_url":"https://api.github.com/users/sefk/followers","following_url":"https://api.github.com/users/sefk/following{/other_user}","gists_url":"https://api.github.com/users/sefk/gists{/gist_id}","starred_url":"https://api.github.com/users/sefk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sefk/subscriptions","organizations_url":"https://api.github.com/users/sefk/orgs","repos_url":"https://api.github.com/users/sefk/repos","events_url":"https://api.github.com/users/sefk/events{/privacy}","received_events_url":"https://api.github.com/users/sefk/received_events","type":"User","site_admin":false},"body":"This is a work-in-progress pull request. While this isn't ready to pull yet, it's at a stage where I'd like to get some feedback.  @dhcole or @brandtheisey or @jeremiak -- what do you think about the code; @GailSwanson and @ultrasaurus what about the UX?\r\n\r\nCurrent status (from commit b2d1fa0)\r\n\r\n    Move people search into browse\r\n\r\n    Instead of having people search in its own hidden endpoint wire into\r\n    normal \"browse\" feature.\r\n\r\n    - Search or autocomplete not wired up yet.\r\n\r\n    - Routing to /profiles currently doesn't work. If you go home and then\r\n      select the \"people\" tab that works, but then if you hit refresh it\r\n      doesn't (404). Something is broken in /profiles routing.\r\n\r\n    - Currently loading map data geo data directly from the map view. Not\r\n      only bad for separation of concerns, but loading every page view is\r\n      dumb, wasteful, and slow.\r\n\r\n    - Paginate the peoplist list when you get lots of results.\r\n\r\n    - Push search terms into navigation to make robust for refresh,\r\n      sharable/bookmarkable, etc.\r\n\r\nNote there are also some vestiges of my first attempt at adding navbar support. \r\n\r\n![browse-people](https://cloud.githubusercontent.com/assets/621565/8635538/08e897b4-27dc-11e5-8f5e-0bb4673dd5a4.png)\r\n","created_at":"2015-07-11T21:51:16Z","updated_at":"2015-07-17T16:51:04Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1f4503a8bb5cdf44c1ba7364d213dd42b4714f20","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/18F/midas/pulls/904/commits","review_comments_url":"https://api.github.com/repos/18F/midas/pulls/904/comments","review_comment_url":"https://api.github.com/repos/18F/midas/pulls/comments{/number}","comments_url":"https://api.github.com/repos/18F/midas/issues/904/comments","statuses_url":"https://api.github.com/repos/18F/midas/statuses/48571ddcb00f6d74dcd7d9c8d1eec7f66454e17f","head":{"label":"sefk:browse-people","ref":"browse-people","sha":"48571ddcb00f6d74dcd7d9c8d1eec7f66454e17f","user":{"login":"sefk","id":621565,"avatar_url":"https://avatars.githubusercontent.com/u/621565?v=3","gravatar_id":"","url":"https://api.github.com/users/sefk","html_url":"https://github.com/sefk","followers_url":"https://api.github.com/users/sefk/followers","following_url":"https://api.github.com/users/sefk/following{/other_user}","gists_url":"https://api.github.com/users/sefk/gists{/gist_id}","starred_url":"https://api.github.com/users/sefk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sefk/subscriptions","organizations_url":"https://api.github.com/users/sefk/orgs","repos_url":"https://api.github.com/users/sefk/repos","events_url":"https://api.github.com/users/sefk/events{/privacy}","received_events_url":"https://api.github.com/users/sefk/received_events","type":"User","site_admin":false},"repo":{"id":33005864,"name":"midas","full_name":"sefk/midas","owner":{"login":"sefk","id":621565,"avatar_url":"https://avatars.githubusercontent.com/u/621565?v=3","gravatar_id":"","url":"https://api.github.com/users/sefk","html_url":"https://github.com/sefk","followers_url":"https://api.github.com/users/sefk/followers","following_url":"https://api.github.com/users/sefk/following{/other_user}","gists_url":"https://api.github.com/users/sefk/gists{/gist_id}","starred_url":"https://api.github.com/users/sefk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sefk/subscriptions","organizations_url":"https://api.github.com/users/sefk/orgs","repos_url":"https://api.github.com/users/sefk/repos","events_url":"https://api.github.com/users/sefk/events{/privacy}","received_events_url":"https://api.github.com/users/sefk/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/sefk/midas","description":"Innovation platform and collaboration marketplace","fork":true,"url":"https://api.github.com/repos/sefk/midas","forks_url":"https://api.github.com/repos/sefk/midas/forks","keys_url":"https://api.github.com/repos/sefk/midas/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sefk/midas/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sefk/midas/teams","hooks_url":"https://api.github.com/repos/sefk/midas/hooks","issue_events_url":"https://api.github.com/repos/sefk/midas/issues/events{/number}","events_url":"https://api.github.com/repos/sefk/midas/events","assignees_url":"https://api.github.com/repos/sefk/midas/assignees{/user}","branches_url":"https://api.github.com/repos/sefk/midas/branches{/branch}","tags_url":"https://api.github.com/repos/sefk/midas/tags","blobs_url":"https://api.github.com/repos/sefk/midas/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sefk/midas/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sefk/midas/git/refs{/sha}","trees_url":"https://api.github.com/repos/sefk/midas/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sefk/midas/statuses/{sha}","languages_url":"https://api.github.com/repos/sefk/midas/languages","stargazers_url":"https://api.github.com/repos/sefk/midas/stargazers","contributors_url":"https://api.github.com/repos/sefk/midas/contributors","subscribers_url":"https://api.github.com/repos/sefk/midas/subscribers","subscription_url":"https://api.github.com/repos/sefk/midas/subscription","commits_url":"https://api.github.com/repos/sefk/midas/commits{/sha}","git_commits_url":"https://api.github.com/repos/sefk/midas/git/commits{/sha}","comments_url":"https://api.github.com/repos/sefk/midas/comments{/number}","issue_comment_url":"https://api.github.com/repos/sefk/midas/issues/comments{/number}","contents_url":"https://api.github.com/repos/sefk/midas/contents/{+path}","compare_url":"https://api.github.com/repos/sefk/midas/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sefk/midas/merges","archive_url":"https://api.github.com/repos/sefk/midas/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sefk/midas/downloads","issues_url":"https://api.github.com/repos/sefk/midas/issues{/number}","pulls_url":"https://api.github.com/repos/sefk/midas/pulls{/number}","milestones_url":"https://api.github.com/repos/sefk/midas/milestones{/number}","notifications_url":"https://api.github.com/repos/sefk/midas/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sefk/midas/labels{/name}","releases_url":"https://api.github.com/repos/sefk/midas/releases{/id}","created_at":"2015-03-27T19:41:59Z","updated_at":"2015-05-08T19:19:29Z","pushed_at":"2015-07-17T00:11:16Z","git_url":"git://github.com/sefk/midas.git","ssh_url":"git@github.com:sefk/midas.git","clone_url":"https://github.com/sefk/midas.git","svn_url":"https://github.com/sefk/midas","homepage":"https://midas-dev.18f.us/","size":19783,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"devel"}},"base":{"label":"18F:devel","ref":"devel","sha":"42105167a19cc98877dadec29a7ccacd3caa2b0a","user":{"login":"18F","id":6233994,"avatar_url":"https://avatars.githubusercontent.com/u/6233994?v=3","gravatar_id":"","url":"https://api.github.com/users/18F","html_url":"https://github.com/18F","followers_url":"https://api.github.com/users/18F/followers","following_url":"https://api.github.com/users/18F/following{/other_user}","gists_url":"https://api.github.com/users/18F/gists{/gist_id}","starred_url":"https://api.github.com/users/18F/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/18F/subscriptions","organizations_url":"https://api.github.com/users/18F/orgs","repos_url":"https://api.github.com/users/18F/repos","events_url":"https://api.github.com/users/18F/events{/privacy}","received_events_url":"https://api.github.com/users/18F/received_events","type":"Organization","site_admin":false},"repo":{"id":11452644,"name":"midas","full_name":"18F/midas","owner":{"login":"18F","id":6233994,"avatar_url":"https://avatars.githubusercontent.com/u/6233994?v=3","gravatar_id":"","url":"https://api.github.com/users/18F","html_url":"https://github.com/18F","followers_url":"https://api.github.com/users/18F/followers","following_url":"https://api.github.com/users/18F/following{/other_user}","gists_url":"https://api.github.com/users/18F/gists{/gist_id}","starred_url":"https://api.github.com/users/18F/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/18F/subscriptions","organizations_url":"https://api.github.com/users/18F/orgs","repos_url":"https://api.github.com/users/18F/repos","events_url":"https://api.github.com/users/18F/events{/privacy}","received_events_url":"https://api.github.com/users/18F/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/18F/midas","description":"Innovation platform and collaboration marketplace","fork":false,"url":"https://api.github.com/repos/18F/midas","forks_url":"https://api.github.com/repos/18F/midas/forks","keys_url":"https://api.github.com/repos/18F/midas/keys{/key_id}","collaborators_url":"https://api.github.com/repos/18F/midas/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/18F/midas/teams","hooks_url":"https://api.github.com/repos/18F/midas/hooks","issue_events_url":"https://api.github.com/repos/18F/midas/issues/events{/number}","events_url":"https://api.github.com/repos/18F/midas/events","assignees_url":"https://api.github.com/repos/18F/midas/assignees{/user}","branches_url":"https://api.github.com/repos/18F/midas/branches{/branch}","tags_url":"https://api.github.com/repos/18F/midas/tags","blobs_url":"https://api.github.com/repos/18F/midas/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/18F/midas/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/18F/midas/git/refs{/sha}","trees_url":"https://api.github.com/repos/18F/midas/git/trees{/sha}","statuses_url":"https://api.github.com/repos/18F/midas/statuses/{sha}","languages_url":"https://api.github.com/repos/18F/midas/languages","stargazers_url":"https://api.github.com/repos/18F/midas/stargazers","contributors_url":"https://api.github.com/repos/18F/midas/contributors","subscribers_url":"https://api.github.com/repos/18F/midas/subscribers","subscription_url":"https://api.github.com/repos/18F/midas/subscription","commits_url":"https://api.github.com/repos/18F/midas/commits{/sha}","git_commits_url":"https://api.github.com/repos/18F/midas/git/commits{/sha}","comments_url":"https://api.github.com/repos/18F/midas/comments{/number}","issue_comment_url":"https://api.github.com/repos/18F/midas/issues/comments{/number}","contents_url":"https://api.github.com/repos/18F/midas/contents/{+path}","compare_url":"https://api.github.com/repos/18F/midas/compare/{base}...{head}","merges_url":"https://api.github.com/repos/18F/midas/merges","archive_url":"https://api.github.com/repos/18F/midas/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/18F/midas/downloads","issues_url":"https://api.github.com/repos/18F/midas/issues{/number}","pulls_url":"https://api.github.com/repos/18F/midas/pulls{/number}","milestones_url":"https://api.github.com/repos/18F/midas/milestones{/number}","notifications_url":"https://api.github.com/repos/18F/midas/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/18F/midas/labels{/name}","releases_url":"https://api.github.com/repos/18F/midas/releases{/id}","created_at":"2013-07-16T15:11:10Z","updated_at":"2015-07-16T02:39:01Z","pushed_at":"2015-07-17T16:31:24Z","git_url":"git://github.com/18F/midas.git","ssh_url":"git@github.com:18F/midas.git","clone_url":"https://github.com/18F/midas.git","svn_url":"https://github.com/18F/midas","homepage":"","size":43376,"stargazers_count":129,"watchers_count":129,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":76,"mirror_url":null,"open_issues_count":112,"forks":76,"open_issues":112,"watchers":129,"default_branch":"devel"}},"_links":{"self":{"href":"https://api.github.com/repos/18F/midas/pulls/904"},"html":{"href":"https://github.com/18F/midas/pull/904"},"issue":{"href":"https://api.github.com/repos/18F/midas/issues/904"},"comments":{"href":"https://api.github.com/repos/18F/midas/issues/904/comments"},"review_comments":{"href":"https://api.github.com/repos/18F/midas/pulls/904/comments"},"review_comment":{"href":"https://api.github.com/repos/18F/midas/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/18F/midas/pulls/904/commits"},"statuses":{"href":"https://api.github.com/repos/18F/midas/statuses/48571ddcb00f6d74dcd7d9c8d1eec7f66454e17f"}}}}