diff --git a/lib/github-client.js b/lib/github-client.js index 088da22..e968478 100644 --- a/lib/github-client.js +++ b/lib/github-client.js @@ -14,6 +14,7 @@ function GitHubClient(config) { this.timeout = config.githubTimeout; this.baseurl = url.parse(config.githubApiBaseUrl || GitHubClient.API_BASE_URL); + this.requestFactory = (this.baseurl.protocol === 'https:') ? https : http; } GitHubClient.API_BASE_URL = 'https://api.github.com/'; @@ -42,14 +43,13 @@ function getHttpOptions(client, repository, paramsStr) { } function makeApiCall(client, metadata, repository) { - var requestFactory = (client.baseurl.protocol === 'https:') ? https : http, - paramsStr = JSON.stringify({ + var paramsStr = JSON.stringify({ title: metadata.title, body: metadata.url }); return new Promise(function(resolve, reject) { var httpOptions = getHttpOptions(client, repository, paramsStr), - req = requestFactory.request(httpOptions, function(res) { + req = client.requestFactory.request(httpOptions, function(res) { handleResponse(res, resolve, reject); }); diff --git a/lib/slack-client.js b/lib/slack-client.js index d69799d..3884d62 100644 --- a/lib/slack-client.js +++ b/lib/slack-client.js @@ -14,6 +14,7 @@ function SlackClient(robotSlackClient, config) { this.timeout = config.slackTimeout; this.successReaction = config.successReaction; this.baseurl = url.parse(config.slackApiBaseUrl || SlackClient.API_BASE_URL); + this.requestFactory = (this.baseurl.protocol === 'https:') ? https : http; } SlackClient.API_BASE_URL = 'https://slack.com/api/'; @@ -52,15 +53,13 @@ function getHttpOptions(client, method, queryParams) { } function makeApiCall(client, method, params) { - var requestFactory = (client.baseurl.protocol === 'https:') ? https : http; - return new Promise(function(resolve, reject) { var httpOptions, req; params.token = process.env.HUBOT_SLACK_TOKEN; httpOptions = getHttpOptions(client, method, params); - req = requestFactory.request(httpOptions, function(res) { + req = client.requestFactory.request(httpOptions, function(res) { handleResponse(method, res, resolve, reject); }); diff --git a/test/github-client-test.js b/test/github-client-test.js index 4237a1b..c246a02 100644 --- a/test/github-client-test.js +++ b/test/github-client-test.js @@ -49,11 +49,13 @@ describe('GitHubClient', function() { it('should parse the local server URL', function() { url.format(githubClient.baseurl).should.eql( githubApiServer.address() + '/'); + githubClient.requestFactory.globalAgent.protocol.should.eql('http:'); }); it('should parse API_BASE_URL if config base URL undefined', function() { var githubClient = new GitHubClient(helpers.baseConfig()); url.format(githubClient.baseurl).should.eql(GitHubClient.API_BASE_URL); + githubClient.requestFactory.globalAgent.protocol.should.eql('https:'); }); }); diff --git a/test/slack-client-test.js b/test/slack-client-test.js index 90f6201..43952b7 100644 --- a/test/slack-client-test.js +++ b/test/slack-client-test.js @@ -49,11 +49,13 @@ describe('SlackClient', function() { it('should parse the local server URL', function() { url.format(slackClient.baseurl).should.eql( slackApiServer.address() + '/api/'); + slackClient.requestFactory.globalAgent.protocol.should.eql('http:'); }); it('should parse API_BASE_URL if config base URL undefined', function() { var slackClient = new SlackClient(undefined, helpers.baseConfig()); url.format(slackClient.baseurl).should.eql(SlackClient.API_BASE_URL); + slackClient.requestFactory.globalAgent.protocol.should.eql('https:'); }); });