mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
✨ Add Beeminder Node (#1325)
* add Beeminder node * clean up unused def * add crud ops * update additional properties * support options in methods * ⚡ Improvements to ##1320 * ⚡ Minor improvements to Beeminder Co-authored-by: mutdmour <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
import {
|
||||
IExecuteFunctions,
|
||||
ILoadOptionsFunctions
|
||||
} from 'n8n-core';
|
||||
|
||||
import {
|
||||
IDataObject,
|
||||
IHookFunctions,
|
||||
IWebhookFunctions,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
import {
|
||||
beeminderApiRequest,
|
||||
beeminderpiRequestAllItems,
|
||||
} from './GenericFunctions';
|
||||
|
||||
export async function createDatapoint(this: IExecuteFunctions | IWebhookFunctions | IHookFunctions | ILoadOptionsFunctions, data: IDataObject) {
|
||||
const credentials = this.getCredentials('beeminderApi');
|
||||
|
||||
if (credentials === undefined) {
|
||||
throw new Error('No credentials got returned!');
|
||||
}
|
||||
|
||||
const endpoint = `/users/${credentials.user}/goals/${data.goalName}/datapoints.json`;
|
||||
|
||||
return await beeminderApiRequest.call(this, 'POST', endpoint, data);
|
||||
}
|
||||
|
||||
export async function getAllDatapoints(this: IExecuteFunctions | IHookFunctions | ILoadOptionsFunctions, data: IDataObject) {
|
||||
const credentials = this.getCredentials('beeminderApi');
|
||||
|
||||
if (credentials === undefined) {
|
||||
throw new Error('No credentials got returned!');
|
||||
}
|
||||
|
||||
const endpoint = `/users/${credentials.user}/goals/${data.goalName}/datapoints.json`;
|
||||
|
||||
if (data.count !== undefined) {
|
||||
return beeminderApiRequest.call(this, 'GET', endpoint, {}, data);
|
||||
}
|
||||
|
||||
return await beeminderpiRequestAllItems.call(this, 'GET', endpoint, {}, data);
|
||||
}
|
||||
|
||||
export async function updateDatapoint(this: IExecuteFunctions | IWebhookFunctions | IHookFunctions | ILoadOptionsFunctions, data: IDataObject) {
|
||||
const credentials = this.getCredentials('beeminderApi');
|
||||
|
||||
if (credentials === undefined) {
|
||||
throw new Error('No credentials got returned!');
|
||||
}
|
||||
|
||||
const endpoint = `/users/${credentials.user}/goals/${data.goalName}/datapoints/${data.datapointId}.json`;
|
||||
|
||||
return await beeminderApiRequest.call(this, 'PUT', endpoint, data);
|
||||
}
|
||||
|
||||
export async function deleteDatapoint(this: IExecuteFunctions | IWebhookFunctions | IHookFunctions | ILoadOptionsFunctions, data: IDataObject) {
|
||||
const credentials = this.getCredentials('beeminderApi');
|
||||
|
||||
if (credentials === undefined) {
|
||||
throw new Error('No credentials got returned!');
|
||||
}
|
||||
|
||||
const endpoint = `/users/${credentials.user}/goals/${data.goalName}/datapoints/${data.datapointId}.json`;
|
||||
|
||||
return await beeminderApiRequest.call(this, 'DELETE', endpoint);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user