n8n-nodes-feishu-fork
Version:
n8n custom nodes for n8n to interact with Feishu/Lark, including Lark Bot, Lark MCP, and Lark Trigger.
197 lines • 6.77 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.larkApiRequestCalendarEventList = larkApiRequestCalendarEventList;
exports.larkApiRequestCalendarList = larkApiRequestCalendarList;
exports.larkApiRequestBaseRoleList = larkApiRequestBaseRoleList;
exports.larkApiRequestTableFieldList = larkApiRequestTableFieldList;
exports.larkApiRequestTableViewList = larkApiRequestTableViewList;
exports.larkApiRequestTableList = larkApiRequestTableList;
exports.larkApiRequestMessageResourceData = larkApiRequestMessageResourceData;
exports.getFileList = getFileList;
const n8n_workflow_1 = require("n8n-workflow");
const RequestUtils_1 = __importDefault(require("../help/utils/RequestUtils"));
async function larkApiRequestCalendarEventList(options) {
const { calendarId, query, user_id_type } = options;
const allEvents = [];
let hasMore = false;
let pageToken = '';
do {
const { data: { page_token, items }, } = await RequestUtils_1.default.request.call(this, {
method: 'POST',
url: `/open-apis/calendar/v4/calendars/${calendarId}/events/search`,
qs: {
user_id_type,
...(pageToken && { page_token: pageToken }),
page_size: 100,
},
body: {
query,
},
});
hasMore = page_token ? true : false;
pageToken = page_token;
if (items) {
allEvents.push(...items);
}
} while (hasMore);
return allEvents;
}
async function larkApiRequestCalendarList() {
const allCalendars = [];
let hasMore = false;
let pageToken = '';
do {
const { data: { has_more, page_token, calendar_list }, } = await RequestUtils_1.default.request.call(this, {
method: 'GET',
url: `/open-apis/calendar/v4/calendars`,
qs: {
...(pageToken && { page_token: pageToken }),
page_size: 1000,
},
});
hasMore = has_more;
pageToken = page_token;
if (calendar_list) {
allCalendars.push(...calendar_list);
}
} while (hasMore);
return allCalendars;
}
async function larkApiRequestBaseRoleList(options) {
const allRoles = [];
let hasMore = false;
let pageToken = '';
const { app_token } = options;
do {
const { data: { has_more, page_token, items }, } = await RequestUtils_1.default.request.call(this, {
method: 'GET',
url: `/open-apis/base/v2/apps/${app_token}/roles`,
qs: {
...(pageToken && { page_token: pageToken }),
page_size: 100,
},
});
hasMore = has_more;
pageToken = page_token;
if (items) {
allRoles.push(...items);
}
} while (hasMore);
return allRoles;
}
async function larkApiRequestTableFieldList(options) {
const allFields = [];
let hasMore = false;
let pageToken = '';
const { app_token, table_id } = options;
do {
const { data: { has_more, page_token, items }, } = await RequestUtils_1.default.request.call(this, {
method: 'GET',
url: `/open-apis/bitable/v1/apps/${app_token}/tables/${table_id}/fields`,
qs: {
page_token: pageToken,
page_size: 100,
},
});
hasMore = has_more;
pageToken = page_token;
if (items) {
allFields.push(...items);
}
} while (hasMore);
return allFields;
}
async function larkApiRequestTableViewList(options) {
const allViews = [];
let hasMore = false;
let pageToken = '';
const { app_token, table_id, user_id_type } = options;
do {
const { data: { has_more, page_token, items }, } = await RequestUtils_1.default.request.call(this, {
method: 'GET',
url: `/open-apis/bitable/v1/apps/${app_token}/tables/${table_id}/views`,
qs: {
page_token: pageToken,
page_size: 100,
user_id_type,
},
});
hasMore = has_more;
pageToken = page_token;
if (items) {
allViews.push(...items);
}
} while (hasMore);
return allViews;
}
async function larkApiRequestTableList(appToken) {
const allTables = [];
let hasMore = false;
let pageToken = '';
do {
const { data: { has_more, page_token, items }, } = await RequestUtils_1.default.request.call(this, {
method: 'GET',
url: `/open-apis/bitable/v1/apps/${appToken}/tables`,
qs: {
page_token: pageToken,
page_size: 100,
},
});
hasMore = has_more;
pageToken = page_token;
if (items) {
allTables.push(...items);
}
} while (hasMore);
return allTables;
}
async function larkApiRequestMessageResourceData(options) {
const { type, messageId, key } = options;
const data = await RequestUtils_1.default.request.call(this, {
method: 'GET',
url: `/open-apis/im/v1/messages/${messageId}/resources/${key}`,
qs: {
type,
},
encoding: 'arraybuffer',
json: false,
});
return Buffer.from(data).toString(n8n_workflow_1.BINARY_ENCODING);
}
async function getFileList(type, order_by = 'EditedTime', direction = 'DESC', user_id_type = 'open_id', folderToken) {
let hasMore = true;
let pageToken = '';
const allFiles = [];
while (hasMore) {
const response = await RequestUtils_1.default.request.call(this, {
method: 'GET',
url: `/open-apis/drive/v1/files`,
qs: {
page_size: 100,
page_token: pageToken,
folder_token: folderToken,
order_by,
direction,
user_id_type,
},
});
const responseData = response.data;
const { files, has_more, next_page_token: nextPageToken } = responseData;
hasMore = has_more;
pageToken = nextPageToken || '';
for (const file of files) {
if (type.includes(file.type)) {
allFiles.push(file);
}
if (file.type === "folder") {
const results = await getFileList.call(this, type, order_by, direction, user_id_type, file.token);
allFiles.push(...results);
}
}
}
return allFiles;
}
//# sourceMappingURL=GenericFunctions.js.map