From 4b3393d42ef0cf4e366867d0cce2979a5d5ab2d9 Mon Sep 17 00:00:00 2001 From: Anton Rudeshko Date: Fri, 16 May 2014 17:49:27 +0400 Subject: [PATCH 1/5] Added getFilter --- lib/jira.js | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/lib/jira.js b/lib/jira.js index ce90137c..6d0e7d8e 100644 --- a/lib/jira.js +++ b/lib/jira.js @@ -1023,6 +1023,48 @@ var JiraApi = exports.JiraApi = function(protocol, host, port, username, passwor }); }; + // ## Get a filter by id ## + // ### Takes ### + // + // * filterId: the id of the filter + // * callback: for when it's done + // + // ### Returns ### + // * error string + // * filter object + // + // [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#d2e484) + this.getFilter = function(filterId, callback) { + var options = { + rejectUnauthorized: this.strictSSL, + uri: this.makeUri('/filter/' + filterId), + method: 'GET', + followAllRedirects: true, + json: true + }; + + this.doRequest(options, function(error, response, body) { + + if (error) { + callback(error, null); + return; + } + + if (response.statusCode === 200 || response.statusCode === 204) { + callback(null, body); + return; + } + + if (response.statusCode === 404) { + callback('Filter not found'); + return; + } + + callback(response.statusCode + ': Error while getting filter', body); + + }); + }; + // ## List Components ## // ### Takes ### // From ecf8ec67a74e9f4a009e6d6776ec7f26a2fb5412 Mon Sep 17 00:00:00 2001 From: Anton Rudeshko Date: Fri, 16 May 2014 18:01:54 +0400 Subject: [PATCH 2/5] Added updateFilter --- lib/jira.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/lib/jira.js b/lib/jira.js index 6d0e7d8e..12415a87 100644 --- a/lib/jira.js +++ b/lib/jira.js @@ -1065,6 +1065,58 @@ var JiraApi = exports.JiraApi = function(protocol, host, port, username, passwor }); }; + // ## Update a filter ## + // ### Takes ### + // + // * filter: an object of the new filter + // * callback: for when it's done + // + // ### Returns ### + // * error string + // * filter object + // + // [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#d2e505) + // + /* { + * "id": "10000", // Required + * "name": "All Open Bugs", + * "description": "Lists all open bugs", + * "jql": "type = Bug and resolution is empty", + * "favourite": true + * } + */ + this.updateFilter = function(filter, callback) { + var options = { + rejectUnauthorized: this.strictSSL, + uri: this.makeUri('/filter/' + filter.id), + method: 'PUT', + followAllRedirects: true, + json: true, + body: filter + }; + + this.doRequest(options, function(error, response, body) { + + if (error) { + callback(error, null); + return; + } + + if (response.statusCode === 200 || response.statusCode === 204) { + callback(null, body); + return; + } + + if (response.statusCode === 404) { + callback('Filter not found'); + return; + } + + callback(response.statusCode + ': Error while updating filter', body); + + }); + }; + // ## List Components ## // ### Takes ### // From b52bf6928ff5d9a3fc92a375ade439b7c2dadbdc Mon Sep 17 00:00:00 2001 From: Anton Rudeshko Date: Fri, 16 May 2014 18:19:25 +0400 Subject: [PATCH 3/5] Added createFilter --- lib/jira.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/lib/jira.js b/lib/jira.js index 12415a87..9b0ecbdb 100644 --- a/lib/jira.js +++ b/lib/jira.js @@ -1065,6 +1065,52 @@ var JiraApi = exports.JiraApi = function(protocol, host, port, username, passwor }); }; + // ## Create a filter ## + // ### Takes ### + // + // * filter: an object of the new filter + // * callback: for when it's done + // + // ### Returns ### + // * error string + // * filter object + // + // [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#d2e451) + // + /* { + * "name": "All Open Bugs", + * "description": "Lists all open bugs", + * "jql": "type = Bug and resolution is empty", + * "favourite": true + * } + */ + this.createFilter = function(filter, callback) { + var options = { + rejectUnauthorized: this.strictSSL, + uri: this.makeUri('/filter'), + method: 'POST', + followAllRedirects: true, + json: true, + body: filter + }; + + this.doRequest(options, function(error, response, body) { + + if (error) { + callback(error, null); + return; + } + + if (response.statusCode === 200 || response.statusCode === 204) { + callback(null, body); + return; + } + + callback(response.statusCode + ': Error while creating filter', body); + + }); + }; + // ## Update a filter ## // ### Takes ### // From ccd242c3a2f45e9943df3f5cee2e2459367b0148 Mon Sep 17 00:00:00 2001 From: Anton Rudeshko Date: Fri, 16 May 2014 18:23:32 +0400 Subject: [PATCH 4/5] Added deleteFilter --- lib/jira.js | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/lib/jira.js b/lib/jira.js index 9b0ecbdb..dbc4c5a5 100644 --- a/lib/jira.js +++ b/lib/jira.js @@ -1111,6 +1111,43 @@ var JiraApi = exports.JiraApi = function(protocol, host, port, username, passwor }); }; + // ## Delete a filter ## + // ### Takes ### + // + // * filterId: the id of the filter + // * callback: for when it's done + // + // ### Returns ### + // * error string + // * filter object + // + // [Jira Doc](https://docs.atlassian.com/jira/REST/latest/#d2e534) + this.deleteFilter = function(filterId, callback) { + var options = { + rejectUnauthorized: this.strictSSL, + uri: this.makeUri('/filter/' + filterId), + method: 'DELETE', + followAllRedirects: true, + json: true + }; + + this.doRequest(options, function(error, response, body) { + + if (error) { + callback(error, null); + return; + } + + if (response.statusCode === 204) { + callback(null, body); + return; + } + + callback(response.statusCode + ': Error while deleting filter', body); + + }); + }; + // ## Update a filter ## // ### Takes ### // From f05e7667a0b09352c97a82be5bdbf321357107ab Mon Sep 17 00:00:00 2001 From: Anton Rudeshko Date: Fri, 16 May 2014 18:25:20 +0400 Subject: [PATCH 5/5] Added myself to contributors --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index a2311dcf..a19af082 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "description": "Wrapper for the JIRA API", "author": "Steven Surowiec ", "contributors": [ + "Anton Rudeshko ", "Chris Moultrie " ], "homepage": "http://github.com/steves/node-jira",