UNPKG

synergia-jira-connector

Version:

Easy to use NodeJS wrapper for the Jira REST API.

101 lines (90 loc) 3.21 kB
"use strict"; module.exports = WebhookClient; /** * Used to access Jira REST endpoints in '/rest/webhook/1.0/webhook' * * @param {JiraClient} jiraClient * @constructor WebhookClient */ function WebhookClient(jiraClient) { this.jiraClient = jiraClient; /** * Returns a list of all registered webhooks. * * @method getAllWebhooks * @memberOf WebhookClient# * @param opts Ignored * @param callback Called when the webhooks have been retrieved. */ this.getAllWebhooks = function (opts, callback) { var options = { uri: this.jiraClient.buildWebhookURL('/webhook'), method: 'GET', json: true, followAllRedirects: true }; this.jiraClient.makeRequest(options, callback); }; /** * Returns a webhook with a specific ID. * * @method getWebhook * @memberOf WebhookClient# * @param opts The options sent to the JIRA API. * @param opts.webhookId The numerical webhook ID. * @param callback Called when the webhook has been retrieved. */ this.getWebhook = function (opts, callback) { var options = { uri: this.jiraClient.buildWebhookURL('/webhook/' + opts.webhookId), method: 'GET', json: true, followAllRedirects: true }; this.jiraClient.makeRequest(options, callback); }; /** * Registers a new webhook. * * @method createWebhook * @memberOf WebhookClient# * @param opts The options sent to the JIRA API. * @param opts.name The name of the webhook. * @param opts.url The URL of the webhook. * @param opts.events An array of events with which the webhook should be registered. See * {@link https://developer.atlassian.com/jiradev/jira-apis/webhooks#Webhooks-configureConfiguringawebhook}. * @param opts.enabled Whether the webhook is enabled. * @param opts.filter An object containing filter configuration. * @param opts.filter.issue-related-events-section A filter for issues, written in JQL. * @param opts.excludeBody Whether to send an empty body to the webhook URL. * @param callback Called when the webhook has been retrieved. */ this.createWebhook = function (opts, callback) { var options = { uri: this.jiraClient.buildWebhookURL('/webhook'), method: 'POST', json: true, body: opts, followAllRedirects: true }; this.jiraClient.makeRequest(options, callback); }; /** * Deletes a registered webhook. * * @method deleteWebhook * @memberOf WebhookClient# * @param opts The options sent to the JIRA API. * @param opts.webhookId The numerical webhook ID. * @param callback Called when the webhook has been retrieved. */ this.deleteWebhook = function (opts, callback) { var options = { uri: this.jiraClient.buildWebhookURL('/webhook/' + opts.webhookId), method: 'DELETE', json: true, followAllRedirects: true }; this.jiraClient.makeRequest(options, callback); }; }