@luka-cat-mimi/n8n-nodes-feishu-project
Version:
飞书项目 N8N 集成插件,支持附件管理等功能
121 lines • 3.69 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSpaceList = getSpaceList;
exports.getSpaceDetails = getSpaceDetails;
exports.getWorkItemTypes = getWorkItemTypes;
exports.getWorkItemFieldMeta = getWorkItemFieldMeta;
exports.mapFeishuFieldTypeToN8n = mapFeishuFieldTypeToN8n;
exports.getWorkflowTemplates = getWorkflowTemplates;
exports.getWorkItemFieldsAll = getWorkItemFieldsAll;
const RequestUtils_1 = __importDefault(require("../help/utils/RequestUtils"));
async function getSpaceList() {
const credentials = await this.getCredentials('feishuProjectApi');
const body = {
user_key: credentials.userId,
};
const response = await RequestUtils_1.default.request.call(this, {
method: 'POST',
url: '/open_api/projects',
body,
});
if (Array.isArray(response)) {
return response;
}
return [];
}
async function getSpaceDetails(projectKeys) {
if (!projectKeys || projectKeys.length === 0) {
return [];
}
const limitedKeys = projectKeys.slice(0, 100);
const credentials = await this.getCredentials('feishuProjectApi');
const body = {
project_keys: limitedKeys,
user_key: credentials.userId,
};
const response = await RequestUtils_1.default.request.call(this, {
method: 'POST',
url: '/open_api/projects/detail',
body,
});
if (response && typeof response === 'object') {
return Object.values(response);
}
return [];
}
async function getWorkItemTypes(projectKey) {
if (!projectKey) {
return [];
}
const response = await RequestUtils_1.default.request.call(this, {
method: 'GET',
url: `/open_api/${projectKey}/work_item/all-types`,
});
if (Array.isArray(response)) {
return response;
}
return [];
}
async function getWorkItemFieldMeta(projectKey, workItemTypeKey) {
if (!projectKey || !workItemTypeKey) {
return [];
}
return await RequestUtils_1.default.request.call(this, {
method: 'GET',
url: `/open_api/${projectKey}/work_item/${workItemTypeKey}/meta`,
});
}
function mapFeishuFieldTypeToN8n(feishuType) {
switch (feishuType) {
case 'number':
case 'float':
case 'integer':
return 'number';
case 'date':
case 'datetime':
return 'dateTime';
case 'boolean':
case 'checkbox':
return 'boolean';
case 'select':
case 'status':
case 'priority':
case 'bug_level':
return 'options';
default:
return 'string';
}
}
async function getWorkflowTemplates(projectKey, workItemTypeKey) {
if (!projectKey || !workItemTypeKey) {
return [];
}
const response = await RequestUtils_1.default.request.call(this, {
method: 'GET',
url: `/open_api/${projectKey}/template_list/${workItemTypeKey}`,
});
if (Array.isArray(response)) {
return response;
}
return [];
}
async function getWorkItemFieldsAll(projectKey, workItemTypeKey) {
if (!projectKey || !workItemTypeKey) {
return [];
}
const response = await RequestUtils_1.default.request.call(this, {
method: 'POST',
url: `/open_api/${projectKey}/field/all`,
body: {
work_item_type_key: workItemTypeKey,
},
});
if (Array.isArray(response)) {
return response;
}
return [];
}
//# sourceMappingURL=GenericFunctions.js.map