toggl-webhook
Version:
Wrapper for toggl webhook api v1
58 lines (57 loc) • 2.33 kB
JavaScript
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`);
}
}