n8n-nodes-feishu-fork
Version:
n8n custom nodes for n8n to interact with Feishu/Lark, including Lark Bot, Lark MCP, and Lark Trigger.
96 lines • 3.85 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const RequestUtils_1 = __importDefault(require("../../../help/utils/RequestUtils"));
const wording_1 = require("../../../help/wording");
const description_1 = require("../../../help/description");
exports.default = {
name: wording_1.WORDING.CalendarEventGetList,
value: "getEventList",
order: 189,
options: [
description_1.DESCRIPTIONS.CALENDAR_ID,
description_1.DESCRIPTIONS.WHETHER_PAGING,
{
...description_1.DESCRIPTIONS.PAGE_SIZE,
typeOptions: {
minValue: 50,
maxValue: 1000,
numberPrecision: 0,
},
},
description_1.DESCRIPTIONS.PAGE_TOKEN,
{
displayName: wording_1.WORDING.Options,
name: 'options',
type: 'collection',
placeholder: wording_1.WORDING.AddField,
default: {},
options: [
description_1.DESCRIPTIONS.USER_ID_TYPE,
description_1.DESCRIPTIONS.ANCHOR_TIME,
description_1.DESCRIPTIONS.SYNC_TOKEN,
{
...description_1.DESCRIPTIONS.START_TIME,
required: false,
},
{
...description_1.DESCRIPTIONS.END_TIME,
required: false,
},
],
},
{
displayName: `<a target="_blank" href="https://open.feishu.cn/document/server-docs/calendar-v4/calendar-event/list">${wording_1.WORDING.OpenDocument}</a>`,
name: 'notice',
type: 'notice',
default: '',
},
],
async call(index) {
const calendarId = this.getNodeParameter('calendar_id', index, undefined, {
extractValue: true,
});
const options = this.getNodeParameter('options', index, {});
const whetherPaging = this.getNodeParameter('whether_paging', index, false);
const pageSize = this.getNodeParameter('page_size', index, 1000);
let pageToken = this.getNodeParameter('page_token', index, '');
const anchorTime = options.anchor_time || '';
let syncToken = options.sync_token || '';
const startTime = options.start_time || '';
const endTime = options.end_time || '';
const userIdType = options.user_id_type || 'open_id';
const allEvents = [];
let hasMore = false;
do {
const { data: { has_more, page_token, items, sync_token }, } = await RequestUtils_1.default.request.call(this, {
method: 'GET',
url: `/open-apis/calendar/v4/calendars/${calendarId}/events`,
qs: {
page_size: pageSize,
user_id_type: userIdType,
...(anchorTime && { anchor_time: anchorTime }),
...(pageToken && { page_token: pageToken }),
...(syncToken && { sync_token: syncToken }),
...(startTime && { start_time: new Date(startTime).toISOString() }),
...(endTime && { end_time: new Date(endTime).toISOString() }),
},
});
hasMore = has_more;
pageToken = page_token;
syncToken = sync_token;
if (items) {
allEvents.push(...items);
}
} while (!whetherPaging && hasMore);
return {
has_more: hasMore,
page_token: pageToken,
sync_token: syncToken,
items: allEvents,
};
},
};
//# sourceMappingURL=EventGetList.operation.js.map