{"action":"created","comment":{"url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls/comments/42650642","id":42650642,"diff_hunk":"@@ -16,3 +18,19 @@ getClients = do\n \n instance QueryResults Client where\n   convertResults fs vs = Client $... zip fs vs\n+\n+saveClient :: Client -> IO Client\n+saveClient client = do\n+  conn <- connectDB\n+  execute conn \"INSERT INTO clients \\\n+    \\(name,address,city,state,zip,country,email,contact,phone,created_at,updated_at) values \\\n+    \\(?,?,?,?,?,?,?,?,?,?,?)\" client\n+  results <- query_ conn \"SELECT LAST_INSERT_ID()\"\n+  let [Only clientId] = results\n+  return client { Client.id = clientId }\n+\n+instance QueryParams Client where\n+  renderParams\n+    (Client _ name address city state zip country email contact phone created_at updated_at) =\n+      [render name, render address, render city, render state, render zip, render country, render email, render contact, render phone, render created_at, render updated_at]","path":"haskell_scotty/ClientRepo.hs","position":34,"original_position":34,"commit_id":"f99fabb37fdec6513ecde80b5f3e9bfbd1c46182","original_commit_id":"724079b20fcb40c2010cb9be0a0b5320c02d948e","user":{"login":"botandrose","id":17391,"avatar_url":"https://avatars.githubusercontent.com/u/17391?v=3","gravatar_id":"","url":"https://api.github.com/users/botandrose","html_url":"https://github.com/botandrose","followers_url":"https://api.github.com/users/botandrose/followers","following_url":"https://api.github.com/users/botandrose/following{/other_user}","gists_url":"https://api.github.com/users/botandrose/gists{/gist_id}","starred_url":"https://api.github.com/users/botandrose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/botandrose/subscriptions","organizations_url":"https://api.github.com/users/botandrose/orgs","repos_url":"https://api.github.com/users/botandrose/repos","events_url":"https://api.github.com/users/botandrose/events{/privacy}","received_events_url":"https://api.github.com/users/botandrose/received_events","type":"User","site_admin":false},"body":"> No, there's really no lists of elements of heterogenous types.\r\n\r\nOh no, now I'm really confused. What about e.g. `[1, \"omg\"]`? Isn't that a valid list of heterogeneous types?","created_at":"2015-10-21T16:53:50Z","updated_at":"2015-10-21T16:53:50Z","html_url":"https://github.com/botandrose/eboshi_api_shootout/pull/75#discussion_r42650642","pull_request_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls/75","_links":{"self":{"href":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls/comments/42650642"},"html":{"href":"https://github.com/botandrose/eboshi_api_shootout/pull/75#discussion_r42650642"},"pull_request":{"href":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls/75"}}},"pull_request":{"url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls/75","id":48287548,"html_url":"https://github.com/botandrose/eboshi_api_shootout/pull/75","diff_url":"https://github.com/botandrose/eboshi_api_shootout/pull/75.diff","patch_url":"https://github.com/botandrose/eboshi_api_shootout/pull/75.patch","issue_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/issues/75","number":75,"state":"open","locked":false,"title":"Haskell Scotty: POST /api/clients","user":{"login":"botandrose","id":17391,"avatar_url":"https://avatars.githubusercontent.com/u/17391?v=3","gravatar_id":"","url":"https://api.github.com/users/botandrose","html_url":"https://github.com/botandrose","followers_url":"https://api.github.com/users/botandrose/followers","following_url":"https://api.github.com/users/botandrose/following{/other_user}","gists_url":"https://api.github.com/users/botandrose/gists{/gist_id}","starred_url":"https://api.github.com/users/botandrose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/botandrose/subscriptions","organizations_url":"https://api.github.com/users/botandrose/orgs","repos_url":"https://api.github.com/users/botandrose/repos","events_url":"https://api.github.com/users/botandrose/events{/privacy}","received_events_url":"https://api.github.com/users/botandrose/received_events","type":"User","site_admin":false},"body":"![image](https://cloud.githubusercontent.com/assets/17391/10627771/88c0f536-7772-11e5-86ba-07b18f91f053.png)","created_at":"2015-10-21T04:37:12Z","updated_at":"2015-10-21T16:53:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7aded1609c9fefeec99638ca4749d274dbca4a77","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls/75/commits","review_comments_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls/75/comments","review_comment_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls/comments{/number}","comments_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/issues/75/comments","statuses_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/statuses/f99fabb37fdec6513ecde80b5f3e9bfbd1c46182","head":{"label":"botandrose:haskell_scotty_post_client","ref":"haskell_scotty_post_client","sha":"f99fabb37fdec6513ecde80b5f3e9bfbd1c46182","user":{"login":"botandrose","id":17391,"avatar_url":"https://avatars.githubusercontent.com/u/17391?v=3","gravatar_id":"","url":"https://api.github.com/users/botandrose","html_url":"https://github.com/botandrose","followers_url":"https://api.github.com/users/botandrose/followers","following_url":"https://api.github.com/users/botandrose/following{/other_user}","gists_url":"https://api.github.com/users/botandrose/gists{/gist_id}","starred_url":"https://api.github.com/users/botandrose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/botandrose/subscriptions","organizations_url":"https://api.github.com/users/botandrose/orgs","repos_url":"https://api.github.com/users/botandrose/repos","events_url":"https://api.github.com/users/botandrose/events{/privacy}","received_events_url":"https://api.github.com/users/botandrose/received_events","type":"User","site_admin":false},"repo":{"id":43263644,"name":"eboshi_api_shootout","full_name":"botandrose/eboshi_api_shootout","owner":{"login":"botandrose","id":17391,"avatar_url":"https://avatars.githubusercontent.com/u/17391?v=3","gravatar_id":"","url":"https://api.github.com/users/botandrose","html_url":"https://github.com/botandrose","followers_url":"https://api.github.com/users/botandrose/followers","following_url":"https://api.github.com/users/botandrose/following{/other_user}","gists_url":"https://api.github.com/users/botandrose/gists{/gist_id}","starred_url":"https://api.github.com/users/botandrose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/botandrose/subscriptions","organizations_url":"https://api.github.com/users/botandrose/orgs","repos_url":"https://api.github.com/users/botandrose/repos","events_url":"https://api.github.com/users/botandrose/events{/privacy}","received_events_url":"https://api.github.com/users/botandrose/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/botandrose/eboshi_api_shootout","description":"Experimenting with building an API for Eboshi in a number of languages","fork":false,"url":"https://api.github.com/repos/botandrose/eboshi_api_shootout","forks_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/forks","keys_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/keys{/key_id}","collaborators_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/teams","hooks_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/hooks","issue_events_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/issues/events{/number}","events_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/events","assignees_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/assignees{/user}","branches_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/branches{/branch}","tags_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/tags","blobs_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/git/refs{/sha}","trees_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/git/trees{/sha}","statuses_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/statuses/{sha}","languages_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/languages","stargazers_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/stargazers","contributors_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/contributors","subscribers_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/subscribers","subscription_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/subscription","commits_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/commits{/sha}","git_commits_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/git/commits{/sha}","comments_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/comments{/number}","issue_comment_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/issues/comments{/number}","contents_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/contents/{+path}","compare_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/compare/{base}...{head}","merges_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/merges","archive_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/downloads","issues_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/issues{/number}","pulls_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls{/number}","milestones_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/milestones{/number}","notifications_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/labels{/name}","releases_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/releases{/id}","created_at":"2015-09-27T20:28:35Z","updated_at":"2015-10-19T03:10:39Z","pushed_at":"2015-10-21T05:30:24Z","git_url":"git://github.com/botandrose/eboshi_api_shootout.git","ssh_url":"git@github.com:botandrose/eboshi_api_shootout.git","clone_url":"https://github.com/botandrose/eboshi_api_shootout.git","svn_url":"https://github.com/botandrose/eboshi_api_shootout","homepage":null,"size":1126,"stargazers_count":1,"watchers_count":1,"language":"Shell","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":10,"forks":4,"open_issues":10,"watchers":1,"default_branch":"master"}},"base":{"label":"botandrose:master","ref":"master","sha":"8e8e8b0859158326505af7f12f5887ba4fa98f81","user":{"login":"botandrose","id":17391,"avatar_url":"https://avatars.githubusercontent.com/u/17391?v=3","gravatar_id":"","url":"https://api.github.com/users/botandrose","html_url":"https://github.com/botandrose","followers_url":"https://api.github.com/users/botandrose/followers","following_url":"https://api.github.com/users/botandrose/following{/other_user}","gists_url":"https://api.github.com/users/botandrose/gists{/gist_id}","starred_url":"https://api.github.com/users/botandrose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/botandrose/subscriptions","organizations_url":"https://api.github.com/users/botandrose/orgs","repos_url":"https://api.github.com/users/botandrose/repos","events_url":"https://api.github.com/users/botandrose/events{/privacy}","received_events_url":"https://api.github.com/users/botandrose/received_events","type":"User","site_admin":false},"repo":{"id":43263644,"name":"eboshi_api_shootout","full_name":"botandrose/eboshi_api_shootout","owner":{"login":"botandrose","id":17391,"avatar_url":"https://avatars.githubusercontent.com/u/17391?v=3","gravatar_id":"","url":"https://api.github.com/users/botandrose","html_url":"https://github.com/botandrose","followers_url":"https://api.github.com/users/botandrose/followers","following_url":"https://api.github.com/users/botandrose/following{/other_user}","gists_url":"https://api.github.com/users/botandrose/gists{/gist_id}","starred_url":"https://api.github.com/users/botandrose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/botandrose/subscriptions","organizations_url":"https://api.github.com/users/botandrose/orgs","repos_url":"https://api.github.com/users/botandrose/repos","events_url":"https://api.github.com/users/botandrose/events{/privacy}","received_events_url":"https://api.github.com/users/botandrose/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/botandrose/eboshi_api_shootout","description":"Experimenting with building an API for Eboshi in a number of languages","fork":false,"url":"https://api.github.com/repos/botandrose/eboshi_api_shootout","forks_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/forks","keys_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/keys{/key_id}","collaborators_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/teams","hooks_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/hooks","issue_events_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/issues/events{/number}","events_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/events","assignees_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/assignees{/user}","branches_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/branches{/branch}","tags_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/tags","blobs_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/git/refs{/sha}","trees_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/git/trees{/sha}","statuses_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/statuses/{sha}","languages_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/languages","stargazers_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/stargazers","contributors_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/contributors","subscribers_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/subscribers","subscription_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/subscription","commits_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/commits{/sha}","git_commits_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/git/commits{/sha}","comments_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/comments{/number}","issue_comment_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/issues/comments{/number}","contents_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/contents/{+path}","compare_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/compare/{base}...{head}","merges_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/merges","archive_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/downloads","issues_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/issues{/number}","pulls_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls{/number}","milestones_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/milestones{/number}","notifications_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/labels{/name}","releases_url":"https://api.github.com/repos/botandrose/eboshi_api_shootout/releases{/id}","created_at":"2015-09-27T20:28:35Z","updated_at":"2015-10-19T03:10:39Z","pushed_at":"2015-10-21T05:30:24Z","git_url":"git://github.com/botandrose/eboshi_api_shootout.git","ssh_url":"git@github.com:botandrose/eboshi_api_shootout.git","clone_url":"https://github.com/botandrose/eboshi_api_shootout.git","svn_url":"https://github.com/botandrose/eboshi_api_shootout","homepage":null,"size":1126,"stargazers_count":1,"watchers_count":1,"language":"Shell","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":10,"forks":4,"open_issues":10,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls/75"},"html":{"href":"https://github.com/botandrose/eboshi_api_shootout/pull/75"},"issue":{"href":"https://api.github.com/repos/botandrose/eboshi_api_shootout/issues/75"},"comments":{"href":"https://api.github.com/repos/botandrose/eboshi_api_shootout/issues/75/comments"},"review_comments":{"href":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls/75/comments"},"review_comment":{"href":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/botandrose/eboshi_api_shootout/pulls/75/commits"},"statuses":{"href":"https://api.github.com/repos/botandrose/eboshi_api_shootout/statuses/f99fabb37fdec6513ecde80b5f3e9bfbd1c46182"}}}}