{"action":"created","issue":{"url":"https://api.github.com/repos/howdyai/botkit/issues/278","repository_url":"https://api.github.com/repos/howdyai/botkit","labels_url":"https://api.github.com/repos/howdyai/botkit/issues/278/labels{/name}","comments_url":"https://api.github.com/repos/howdyai/botkit/issues/278/comments","events_url":"https://api.github.com/repos/howdyai/botkit/issues/278/events","html_url":"https://github.com/howdyai/botkit/pull/278","id":160542660,"number":278,"title":"Promisify the Slack Web API","user":{"login":"mjesuele","id":871117,"avatar_url":"https://avatars.githubusercontent.com/u/871117?v=3","gravatar_id":"","url":"https://api.github.com/users/mjesuele","html_url":"https://github.com/mjesuele","followers_url":"https://api.github.com/users/mjesuele/followers","following_url":"https://api.github.com/users/mjesuele/following{/other_user}","gists_url":"https://api.github.com/users/mjesuele/gists{/gist_id}","starred_url":"https://api.github.com/users/mjesuele/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mjesuele/subscriptions","organizations_url":"https://api.github.com/users/mjesuele/orgs","repos_url":"https://api.github.com/users/mjesuele/repos","events_url":"https://api.github.com/users/mjesuele/events{/privacy}","received_events_url":"https://api.github.com/users/mjesuele/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2016-06-15T22:56:54Z","updated_at":"2016-07-12T17:13:56Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/howdyai/botkit/pulls/278","html_url":"https://github.com/howdyai/botkit/pull/278","diff_url":"https://github.com/howdyai/botkit/pull/278.diff","patch_url":"https://github.com/howdyai/botkit/pull/278.patch"},"body":"This pull request uses Bluebird to add promise support to the Slack Web API while retaining support for the original callback style.\r\n\r\nIf a callback is passed as the last argument to a Slack API call then it is executed as before. Otherwise, a promise is returned.\r\n\r\nFeedback is very welcome. If there's interest, I can try my hand at adding promise support to the Facebook and/or Twilio interfaces as well."},"comment":{"url":"https://api.github.com/repos/howdyai/botkit/issues/comments/232113960","html_url":"https://github.com/howdyai/botkit/pull/278#issuecomment-232113960","issue_url":"https://api.github.com/repos/howdyai/botkit/issues/278","id":232113960,"user":{"login":"mjesuele","id":871117,"avatar_url":"https://avatars.githubusercontent.com/u/871117?v=3","gravatar_id":"","url":"https://api.github.com/users/mjesuele","html_url":"https://github.com/mjesuele","followers_url":"https://api.github.com/users/mjesuele/followers","following_url":"https://api.github.com/users/mjesuele/following{/other_user}","gists_url":"https://api.github.com/users/mjesuele/gists{/gist_id}","starred_url":"https://api.github.com/users/mjesuele/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mjesuele/subscriptions","organizations_url":"https://api.github.com/users/mjesuele/orgs","repos_url":"https://api.github.com/users/mjesuele/repos","events_url":"https://api.github.com/users/mjesuele/events{/privacy}","received_events_url":"https://api.github.com/users/mjesuele/received_events","type":"User","site_admin":false},"created_at":"2016-07-12T17:13:56Z","updated_at":"2016-07-12T17:13:56Z","body":"@colestrode, I understand now about building a promisified version as a separate module, thanks for the link 😎\r\n\r\nI see your point regarding the inconsistent user experience. Based on the number of thumbs-up this PR has gotten, I assume that there's a lot of interest in promisifying more of Botkit, and I'd be happy to contribute to that effort. I can see why we'd want to avoid introducing promise support in a piecemeal fashion -- at the same time, this is useful _now_.\r\n\r\nIt actually looks like the Twilio API is already promise-based, incidentally, and the Facebook adapter doesn't have any comparable API, so adding promise support to the Slack API might be a move towards greater internal coherence after all, even if the rest of Botkit remains callback-based.\r\n\r\nI'm curious what the issue with maintenance is, at least for the simple case of the Slack API. My impression was that as long as the callbacks are indeed idiomatic Node, Bluebird's promisification should work pretty much automatically. With this last point, I might be asking for a little schooling, so I appreciate your time in responding.\r\n\r\nThanks!"}}
{"actor":{"display_login":"mjesuele"}}