Skip to content

Commit f6d7388

Browse files
authored
Merge pull request #1 from eerootsus/oauth-support
Oauth support
2 parents 4fca383 + a4d46d8 commit f6d7388

File tree

4 files changed

+17
-12
lines changed

4 files changed

+17
-12
lines changed

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ This Pipedrive API client is distributed under the MIT licence.
3030
- Run tests
3131
- Make PR
3232

33+
## Options
34+
* `strictMode` - In strict mode `*_id` items in the responses are numeric IDs. Default is *false* in which case expanded
35+
objects are returned. Strict mode is recommended and is likely to be the default in the future.
36+
* `oauth` - whether the API token is to be used as OAuth bearer token instead of classic API key (default is *false*).
37+
When setting `oauth` to true your application code must take care of fetching, storing and refershing the tokens.
38+
3339
# How to use
3440
With a pre-set API token:
3541
```js
@@ -56,13 +62,15 @@ pipedrive.Deals.getAll({}, function(err, deals) {
5662
### Supported objects
5763

5864
* Activities
65+
* ActivityFields
5966
* ActivityTypes
6067
* Authorizations
6168
* Currencies
6269
* CompanyFeatures,
6370
* CompanySettings,
6471
* Deals
6572
* DealFields
73+
* EmailThreads
6674
* Files
6775
* Filters
6876
* Goals
@@ -79,6 +87,7 @@ pipedrive.Deals.getAll({}, function(err, deals) {
7987
* SearchResults
8088
* Stages
8189
* Users
90+
* userFields
8291
* Webhooks
8392

8493
### Supported operations for object collections

lib/Pipedrive.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222

2323
var defaults = {
2424
strictMode: false,
25-
apiHost: null,
26-
apiVersion: null
25+
oauth: false,
2726
};
2827

2928
options = _.extend({}, defaults, options);

lib/apiUrl.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,13 @@
55
qs = require('qs'),
66
protocol = 'https',
77
host = process.env.PIPEDRIVE_API_HOST || 'api.pipedrive.com',
8-
proxyHost = process.env.PIPEDRIVE_API_HOST || 'api-proxy.pipedrive.com',
98
version = process.env.PIPEDRIVE_API_VERSION || 'v1',
109
baseUri = protocol + '://' + host + '/' + version;
1110

1211
module.exports = function apiUrl(path, options, tokenNeeded) {
1312
var queryObj = {};
14-
if(options.useAccessToken)
15-
return protocol + '://' + proxyHost + '/' + path;
1613

17-
if (tokenNeeded) {
14+
if (!options.oauth && tokenNeeded) {
1815
queryObj.api_token = options.apiToken;
1916
}
2017
if (options.strictMode === true) {

lib/restHandlers.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
this.resolveOptions = function (options) {
1818
options = options || {};
19-
if(this.options.useAccessToken) {
19+
if(this.options.oauth) {
2020
options.accessToken = this.options.apiToken;
2121
}
2222
return options;
@@ -90,7 +90,7 @@
9090
// GET /items
9191
RestHandlers.prototype.listItems = function(object, params, callback) {
9292
var self = this,
93-
paramsToSupply = _.extend({}, _.isObject(params) ? params : {}, this.options.apiToken && !this.options.useAccessToken ? { api_token: this.options.apiToken } : {}),
93+
paramsToSupply = _.extend({}, _.isObject(params) ? params : {}, this.options.apiToken && !this.options.oauth ? { api_token: this.options.apiToken } : {}),
9494
dataObject = object == 'authorizations' ? { multipart: false, data: paramsToSupply } : { query: qs.stringify(paramsToSupply) },
9595
req = rest[object == 'authorizations' ? 'post' : 'get'](apiUrl(object, this.options, false), this.resolveOptions(dataObject));
9696

@@ -104,7 +104,7 @@
104104
// GET /items/find
105105
RestHandlers.prototype.findItems = function(object, params, callback) {
106106
var self = this,
107-
paramsToSupply = _.extend({}, _.isObject(params) ? params : {}, this.options.apiToken && !this.options.useAccessToken ? { api_token: this.options.apiToken } : {}),
107+
paramsToSupply = _.extend({}, _.isObject(params) ? params : {}, this.options.apiToken && !this.options.oauth ? { api_token: this.options.apiToken } : {}),
108108
dataObject = { query: qs.stringify(paramsToSupply) },
109109
req = rest.get(apiUrl(object + '/find', this.options, false), this.resolveOptions(dataObject));
110110

@@ -118,7 +118,7 @@
118118
// GET /items/timeline
119119
RestHandlers.prototype.timelineItems = function(object, params, callback) {
120120
var self = this,
121-
paramsToSupply = _.extend({}, _.isObject(params) ? params : {}, this.options.apiToken && !this.options.useAccessToken ? { api_token: this.options.apiToken } : {}),
121+
paramsToSupply = _.extend({}, _.isObject(params) ? params : {}, this.options.apiToken && !this.options.oauth ? { api_token: this.options.apiToken } : {}),
122122
dataObject = { query: qs.stringify(paramsToSupply) },
123123
req = rest.get(apiUrl(object + '/timeline', this.options, false), this.resolveOptions(dataObject));
124124

@@ -132,7 +132,7 @@
132132
// GET /searchResults/field
133133
RestHandlers.prototype.searchFields = function(object, params, callback) {
134134
var self = this,
135-
paramsToSupply = _.extend({}, _.isObject(params) ? params : {}, this.options.apiToken && !this.options.useAccessToken ? { api_token: this.options.apiToken } : {}),
135+
paramsToSupply = _.extend({}, _.isObject(params) ? params : {}, this.options.apiToken && !this.options.oauth ? { api_token: this.options.apiToken } : {}),
136136
dataObject = { query: qs.stringify(paramsToSupply) },
137137
req = rest.get(apiUrl(object + '/field', this.options, false), this.resolveOptions(dataObject));
138138

@@ -146,7 +146,7 @@
146146
// GET /items/5
147147
RestHandlers.prototype.getItem = function(object, id, callback, params) {
148148
var self = this,
149-
paramsToSupply = _.extend({}, _.isObject(params) ? params : {}, this.options.apiToken && !this.options.useAccessToken ? { api_token: this.options.apiToken } : {}),
149+
paramsToSupply = _.extend({}, _.isObject(params) ? params : {}, this.options.apiToken && !this.options.oauth ? { api_token: this.options.apiToken } : {}),
150150
dataObject = { json: true, query: qs.stringify(paramsToSupply) },
151151
req = rest.get(apiUrl(object + '/' + id, this.options, false), this.resolveOptions(dataObject));
152152

0 commit comments

Comments
 (0)