UNPKG

toggl-webhook

Version:
58 lines (57 loc) 2.33 kB
import { TogglHttpClient } from './client.js'; import validate from './validate.js'; export class TogglWebhookClient { constructor(options) { Object.defineProperty(this, "client", { enumerable: true, configurable: true, writable: true, value: void 0 }); this.client = new TogglHttpClient(options); } listEventFilters() { return this.client.get('event_filters'); } listSubscriptions(params) { validate('ListSubscriptionsParams', params); const { workspace_id } = params; return this.client.get(`subscriptions/${workspace_id}`); } createSubscription(params) { validate('CreateSubscriptionParams', params); const { workspace_id, ...subscription } = params; return this.client.post(`subscriptions/${workspace_id}`, subscription); } updateSubscription(params) { validate('UpdateSubscriptionParams', params); const { workspace_id, subscription_id, ...subscription } = params; return this.client.put(`subscriptions/${workspace_id}/${subscription_id}`, subscription); } setSubscriptionEnabled(params) { validate('SetSubscriptionEnabledParams', params); const { workspace_id, subscription_id, enabled } = params; return this.client.patch(`subscriptions/${workspace_id}/${subscription_id}`, { enabled }); } deleteSubscription(params) { validate('DeleteSubscriptionParams', params); const { workspace_id, subscription_id } = params; return this.client.delete(`subscriptions/${workspace_id}/${subscription_id}`); } pingSubscription(params) { validate('PingSubscriptionParams', params); const { workspace_id, subscription_id } = params; return this.client.post(`ping/${workspace_id}/${subscription_id}`); } listSubscriptionEvents(params) { validate('ListSubscriptionEventsParams', params); const { workspace_id, subscription_id, offset } = params; const query = new URLSearchParams(); if (offset) query.append('offset', offset + ''); return this.client.get(`subscriptions/${workspace_id}/${subscription_id}/events`, query); } serverStatus() { return this.client.get(`status`); } }