红圈CRM+ OpenAPI SDK for JavaScript/TypeScript
npm install hecom-openapi-javascriptimport HClient from 'hecom-openapi-javascript';
// 创建客户端实例
const client = new HClient({
clientId: 'your-client-id', // 必填,客户端ID
clientSecret: 'your-client-secret', // 必填,客户端密钥
username: 'your-username', // 必填,用户名
apiHost: 'https://tc.cloud.hecom.cn', // 可选,API主机地址,默认为 https://tc.cloud.hecom.cn
});| 方法名 | 说明 | 参数 | 返回值 |
|---|---|---|---|
| getObjects | 获取业务对象列表 | - | Promise<ObjectMeta[]> |
| getObjectDescription | 获取业务对象描述 | metaName: string | Promise<ObjectMetaDetail> |
| 方法名 | 说明 | 参数 | 返回值 |
|---|---|---|---|
| createData | 创建业务数据 | metaName: string, data: BizRecord | Promise<string> |
| updateData | 更新业务数据 | metaName: string, code: string, data: BizRecord | Promise<string> |
| batchCreateData | 批量创建业务数据 | metaName: string, records: BizRecord[] | Promise<string[]> |
| deleteData | 删除业务数据 | metaName: string, code: string | Promise<string> |
| batchUpdateData | 批量更新业务数据 | metaName: string, records: BizRecord[] | Promise<string[]> |
| getData | 获取业务数据详情 | metaName: string, code: string | Promise<BizRecord> |
| queryData | 查询业务数据 | metaName: string, options: QueryOptions | Promise<QueryResult> |
| queryDataBySQL | SQL查询业务数据 | sql: string | Promise<QueryResult> |
| queryAuxiliaryData | 查询辅助对象数据 | metaName: string, options: QueryOptions | Promise<QueryResult> |
| transferOwner | 业务数据转移负责人 | metaName: string, code: string, newOwner: string, addTeam: boolean, deptFollowNewOwner: boolean | Promise<string> |
| 方法名 | 说明 | 参数 | 返回值 |
|---|---|---|---|
| getUserDescription | 获取用户对象描述 | - | Promise<ObjectMetaDetail> |
| createUser | 创建用户 | userData: BizRecord | Promise<string> |
| updateUser | 更新用户信息 | code: string, userData: BizRecord | Promise<string> |
| getUserDetail | 获取用户详情 | code: string | Promise<BizRecord> |
| 方法名 | 说明 | 参数 | 返回值 |
|---|---|---|---|
| getDeptDescription | 获取部门对象描述 | - | Promise<ObjectMetaDetail> |
| createDept | 创建部门 | deptData: BizRecord | Promise<string> |
| updateDept | 更新部门信息 | code: string, deptData: BizRecord | Promise<string> |
| getDeptDetail | 获取部门详情 | code: string | Promise<BizRecord> |
| 方法名 | 说明 | 参数 | 返回值 |
|---|---|---|---|
| getRoleDescription | 获取角色对象描述 | - | Promise<ObjectMetaDetail> |
| createRole | 创建角色 | roleData: BizRecord | Promise<string> |
| updateRole | 更新角色信息 | code: string, roleData: BizRecord | Promise<string> |
| getRoleDetail | 获取角色详情 | code: string | Promise<BizRecord> |
| 方法名 | 说明 | 参数 | 返回值 |
|---|---|---|---|
| getConstantGroups | 获取选项值集列表 | - | Promise<ConstantGroup[]> |
| getConstantOptions | 获取选项值集选项 | groupName: string | Promise<ConstantOption[]> |
| createConstantOption | 创建选项值 | groupName: string, name: string, label: string, parentName?: string | Promise<ConstantOption> |
| updateConstantOption | 更新选项值 | groupName: string, optionName: string, label: string | Promise<ConstantOption> |
interface QueryOptions {
selectFields: string[]; // 查询字段列表
pageNo: number; // 页码,从1开始
pageSize: number; // 每页记录数
query: Record<string, string | number>; // 查询条件
}interface BizRecord {
id: number; // 记录ID
code: string; // 记录编码
name: string; // 记录名称
entCode: string; // 企业编码
metaName: string; // 对象API名称
status: number; // 状态
createdOn: number; // 创建时间
updatedOn: number; // 更新时间
[key: string]: unknown; // 其他业务字段
}SDK 提供了三种异常类型:
- HecomError: 基础错误类
- NetHecomError: 网络相关错误
- BizHecomError: 业务逻辑错误
try {
await client.createData('objectName', data);
} catch (error) {
if (error instanceof BizHecomError) {
// 处理业务错误
} else if (error instanceof NetHecomError) {
// 处理网络错误
}
}本项目使用 vitest 进行单元测试。
- 在项目根目录创建
.env文件,添加以下必要参数:
HECOM_CLIENT_ID=你的客户端ID
HECOM_CLIENT_SECRET=你的客户端密钥
HECOM_USERNAME=你的用户名
HECOM_API_HOST=https://tc.cloud.hecom.cn- 确保所有参数已正确填写,缺少任何必要参数都会导致测试失败。
执行以下命令运行单元测试:
npm test如需在开发过程中监控文件变化并自动运行测试,可使用:
npm run test:watch查看 LICENSE.md 文件了解详情。