@luka-cat-mimi/n8n-nodes-feishu-project
Version:
飞书项目 N8N 集成插件,支持附件管理等功能
83 lines • 4 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 sharedOptions_1 = require("../../../help/utils/sharedOptions");
const UserGetInfoOperate = {
name: '查询用户信息',
value: 'user:query',
order: 40,
options: [
{
displayName: '用户Key列表',
name: 'user_keys',
type: 'string',
default: '',
description: '飞书项目的 user_key 数组。开发者自己的 user_key 可在飞书项目空间左下角双击个人头像获取;租户内其他成员的 user_key 请通过搜索租户内的用户列表接口获取。user_keys、out_ids、emails 三个参数必须至少提供一个(最多100个)',
},
{
displayName: 'UnionId列表',
name: 'out_ids',
type: 'string',
default: '',
description: '飞书开放平台的 UnionId 数组,用于标识同一应用服务商开发的多个应用中的统一身份。user_keys、out_ids、emails 三个参数必须至少提供一个(最多100个)',
},
{
displayName: '邮箱列表',
name: 'emails',
type: 'string',
default: '',
description: '邮箱数组。通过邮箱查询时,需要确保邮箱已绑定飞书。user_keys、out_ids、emails 三个参数必须至少提供一个(最多100个)',
},
{
displayName: '租户Key',
name: 'tenant_key',
type: 'string',
default: '',
description: '待查询用户所在飞书项目租户的 saas_tenant_key。此参数适用于邮箱查询场景。当查询非插件关联租户的用户时,此参数为必填。例如:租户X开发了插件A,租户Y安装了插件A,要查询租户Y的用户信息时,需要填写此参数。如果此参数为空,则视为查询插件关联租户下的用户信息',
},
sharedOptions_1.commonOptions,
],
async call(index) {
const userKeys = this.getNodeParameter('user_keys', index);
const outIds = this.getNodeParameter('out_ids', index);
const emails = this.getNodeParameter('emails', index);
const tenantKey = this.getNodeParameter('tenant_key', index);
const options = this.getNodeParameter('options', index, {});
const body = {};
const userKeysArray = Array.isArray(userKeys)
? userKeys.filter((key) => key && key.trim())
: (userKeys && userKeys.trim() ? [userKeys] : []);
if (userKeysArray.length > 0) {
body.user_keys = userKeysArray;
}
const outIdsArray = Array.isArray(outIds)
? outIds.filter((id) => id && id.trim())
: (outIds && outIds.trim() ? [outIds] : []);
if (outIdsArray.length > 0) {
body.out_ids = outIdsArray;
}
const emailsArray = Array.isArray(emails)
? emails.filter((email) => email && email.trim())
: (emails && emails.trim() ? [emails] : []);
if (emailsArray.length > 0) {
body.emails = emailsArray;
}
if (userKeysArray.length === 0 && outIdsArray.length === 0 && emailsArray.length === 0) {
throw new Error('user_keys、out_ids、emails 三个参数必须至少提供一个');
}
if (tenantKey && tenantKey.trim()) {
body.tenant_key = tenantKey.trim();
}
return RequestUtils_1.default.request.call(this, {
method: 'POST',
url: `/open_api/user/query`,
body: body,
timeout: options.timeout,
});
}
};
exports.default = UserGetInfoOperate;
//# sourceMappingURL=UserGetInfoOperate.js.map