meeglesdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +191 -0
- package/dist/client.d.ts +186 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +197 -0
- package/dist/client.js.map +1 -0
- package/dist/core/base-service.d.ts +156 -0
- package/dist/core/base-service.d.ts.map +1 -0
- package/dist/core/base-service.js +240 -0
- package/dist/core/base-service.js.map +1 -0
- package/dist/core/errors.d.ts +181 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +250 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/rate-limiter.d.ts +72 -0
- package/dist/core/rate-limiter.d.ts.map +1 -0
- package/dist/core/rate-limiter.js +269 -0
- package/dist/core/rate-limiter.js.map +1 -0
- package/dist/core/request.d.ts +270 -0
- package/dist/core/request.d.ts.map +1 -0
- package/dist/core/request.js +842 -0
- package/dist/core/request.js.map +1 -0
- package/dist/core/token-manager.d.ts +134 -0
- package/dist/core/token-manager.d.ts.map +1 -0
- package/dist/core/token-manager.js +412 -0
- package/dist/core/token-manager.js.map +1 -0
- package/dist/helpers/auth.d.ts +7 -0
- package/dist/helpers/auth.d.ts.map +1 -0
- package/dist/helpers/auth.js +19 -0
- package/dist/helpers/auth.js.map +1 -0
- package/dist/index.d.ts +72 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/service/auth/index.d.ts +96 -0
- package/dist/service/auth/index.d.ts.map +1 -0
- package/dist/service/auth/index.js +163 -0
- package/dist/service/auth/index.js.map +1 -0
- package/dist/service/config/basic.d.ts +37 -0
- package/dist/service/config/basic.d.ts.map +1 -0
- package/dist/service/config/basic.js +54 -0
- package/dist/service/config/basic.js.map +1 -0
- package/dist/service/config/config.d.ts +27 -0
- package/dist/service/config/config.d.ts.map +1 -0
- package/dist/service/config/config.js +34 -0
- package/dist/service/config/config.js.map +1 -0
- package/dist/service/config/field.d.ts +50 -0
- package/dist/service/config/field.d.ts.map +1 -0
- package/dist/service/config/field.js +74 -0
- package/dist/service/config/field.js.map +1 -0
- package/dist/service/config/relation.d.ts +53 -0
- package/dist/service/config/relation.d.ts.map +1 -0
- package/dist/service/config/relation.js +66 -0
- package/dist/service/config/relation.js.map +1 -0
- package/dist/service/config/resource.d.ts +59 -0
- package/dist/service/config/resource.d.ts.map +1 -0
- package/dist/service/config/resource.js +75 -0
- package/dist/service/config/resource.js.map +1 -0
- package/dist/service/config/role.d.ts +55 -0
- package/dist/service/config/role.d.ts.map +1 -0
- package/dist/service/config/role.js +90 -0
- package/dist/service/config/role.js.map +1 -0
- package/dist/service/config/template.d.ts +65 -0
- package/dist/service/config/template.d.ts.map +1 -0
- package/dist/service/config/template.js +95 -0
- package/dist/service/config/template.js.map +1 -0
- package/dist/service/measure/index.d.ts +26 -0
- package/dist/service/measure/index.d.ts.map +1 -0
- package/dist/service/measure/index.js +36 -0
- package/dist/service/measure/index.js.map +1 -0
- package/dist/service/measure/query.d.ts +56 -0
- package/dist/service/measure/query.d.ts.map +1 -0
- package/dist/service/measure/query.js +86 -0
- package/dist/service/measure/query.js.map +1 -0
- package/dist/service/space/relation.d.ts +63 -0
- package/dist/service/space/relation.d.ts.map +1 -0
- package/dist/service/space/relation.js +102 -0
- package/dist/service/space/relation.js.map +1 -0
- package/dist/service/space/space.d.ts +81 -0
- package/dist/service/space/space.d.ts.map +1 -0
- package/dist/service/space/space.js +110 -0
- package/dist/service/space/space.js.map +1 -0
- package/dist/service/tenant/tenant.d.ts +52 -0
- package/dist/service/tenant/tenant.d.ts.map +1 -0
- package/dist/service/tenant/tenant.js +75 -0
- package/dist/service/tenant/tenant.js.map +1 -0
- package/dist/service/user/group.d.ts +47 -0
- package/dist/service/user/group.d.ts.map +1 -0
- package/dist/service/user/group.js +70 -0
- package/dist/service/user/group.js.map +1 -0
- package/dist/service/user/query.d.ts +25 -0
- package/dist/service/user/query.d.ts.map +1 -0
- package/dist/service/user/query.js +26 -0
- package/dist/service/user/query.js.map +1 -0
- package/dist/service/user/search.d.ts +25 -0
- package/dist/service/user/search.d.ts.map +1 -0
- package/dist/service/user/search.js +26 -0
- package/dist/service/user/search.js.map +1 -0
- package/dist/service/user/user.d.ts +37 -0
- package/dist/service/user/user.d.ts.map +1 -0
- package/dist/service/user/user.js +46 -0
- package/dist/service/user/user.js.map +1 -0
- package/dist/service/view/query.d.ts +52 -0
- package/dist/service/view/query.d.ts.map +1 -0
- package/dist/service/view/query.js +76 -0
- package/dist/service/view/query.js.map +1 -0
- package/dist/service/view/view.d.ts +76 -0
- package/dist/service/view/view.d.ts.map +1 -0
- package/dist/service/view/view.js +108 -0
- package/dist/service/view/view.js.map +1 -0
- package/dist/service/workitem/attachment.d.ts +143 -0
- package/dist/service/workitem/attachment.d.ts.map +1 -0
- package/dist/service/workitem/attachment.js +231 -0
- package/dist/service/workitem/attachment.js.map +1 -0
- package/dist/service/workitem/batch.d.ts +135 -0
- package/dist/service/workitem/batch.d.ts.map +1 -0
- package/dist/service/workitem/batch.js +146 -0
- package/dist/service/workitem/batch.js.map +1 -0
- package/dist/service/workitem/chat.d.ts +42 -0
- package/dist/service/workitem/chat.d.ts.map +1 -0
- package/dist/service/workitem/chat.js +50 -0
- package/dist/service/workitem/chat.js.map +1 -0
- package/dist/service/workitem/comment.d.ts +139 -0
- package/dist/service/workitem/comment.d.ts.map +1 -0
- package/dist/service/workitem/comment.js +180 -0
- package/dist/service/workitem/comment.js.map +1 -0
- package/dist/service/workitem/review.d.ts +44 -0
- package/dist/service/workitem/review.d.ts.map +1 -0
- package/dist/service/workitem/review.js +49 -0
- package/dist/service/workitem/review.js.map +1 -0
- package/dist/service/workitem/search.d.ts +213 -0
- package/dist/service/workitem/search.d.ts.map +1 -0
- package/dist/service/workitem/search.js +242 -0
- package/dist/service/workitem/search.js.map +1 -0
- package/dist/service/workitem/subtask.d.ts +193 -0
- package/dist/service/workitem/subtask.d.ts.map +1 -0
- package/dist/service/workitem/subtask.js +247 -0
- package/dist/service/workitem/subtask.js.map +1 -0
- package/dist/service/workitem/workItem.d.ts +225 -0
- package/dist/service/workitem/workItem.d.ts.map +1 -0
- package/dist/service/workitem/workItem.js +310 -0
- package/dist/service/workitem/workItem.js.map +1 -0
- package/dist/service/workitem/workflow.d.ts +214 -0
- package/dist/service/workitem/workflow.d.ts.map +1 -0
- package/dist/service/workitem/workflow.js +281 -0
- package/dist/service/workitem/workflow.js.map +1 -0
- package/dist/service/workitem/workhour.d.ts +63 -0
- package/dist/service/workitem/workhour.d.ts.map +1 -0
- package/dist/service/workitem/workhour.js +93 -0
- package/dist/service/workitem/workhour.js.map +1 -0
- package/dist/types/auth.d.ts +115 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +6 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/common.d.ts +354 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +14 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/config.d.ts +305 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +6 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +13 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/measure.d.ts +55 -0
- package/dist/types/measure.d.ts.map +1 -0
- package/dist/types/measure.js +6 -0
- package/dist/types/measure.js.map +1 -0
- package/dist/types/space.d.ts +164 -0
- package/dist/types/space.d.ts.map +1 -0
- package/dist/types/space.js +6 -0
- package/dist/types/space.js.map +1 -0
- package/dist/types/tenant.d.ts +106 -0
- package/dist/types/tenant.d.ts.map +1 -0
- package/dist/types/tenant.js +6 -0
- package/dist/types/tenant.js.map +1 -0
- package/dist/types/user.d.ts +110 -0
- package/dist/types/user.d.ts.map +1 -0
- package/dist/types/user.js +6 -0
- package/dist/types/user.js.map +1 -0
- package/dist/types/view.d.ts +162 -0
- package/dist/types/view.d.ts.map +1 -0
- package/dist/types/view.js +6 -0
- package/dist/types/view.js.map +1 -0
- package/dist/types/workitem.d.ts +1523 -0
- package/dist/types/workitem.d.ts.map +1 -0
- package/dist/types/workitem.js +6 -0
- package/dist/types/workitem.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 批量操作服务
|
|
3
|
+
* 100% 参考 Meego API 文档
|
|
4
|
+
*
|
|
5
|
+
* 提供工作项的批量操作能力:
|
|
6
|
+
* - 批量更新工作项字段值
|
|
7
|
+
* - 获取批量更新处理进度
|
|
8
|
+
* - 交付物信息批量查询
|
|
9
|
+
*
|
|
10
|
+
* 注意:评审意见/结论批量查询已移至 ReviewService.batchQuery()
|
|
11
|
+
*/
|
|
12
|
+
import { BaseService, type ServiceRequestOptions } from '../../core/base-service.js';
|
|
13
|
+
import type { BatchUpdateRequest, BatchUpdateResponse, BatchTaskResult, DeliverableBatchQueryRequest, WorkItemDeliverable } from '../../types/workitem.js';
|
|
14
|
+
/** API 路径 */
|
|
15
|
+
export declare const API_PATHS: {
|
|
16
|
+
/** 批量更新工作项字段值 */
|
|
17
|
+
BATCH_UPDATE: string;
|
|
18
|
+
/** 获取批量更新处理进度 */
|
|
19
|
+
TASK_RESULT: string;
|
|
20
|
+
/** 交付物信息批量查询(WBS) */
|
|
21
|
+
DELIVERABLE_BATCH_QUERY: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* 批量操作服务
|
|
25
|
+
*
|
|
26
|
+
* 提供工作项的批量操作能力
|
|
27
|
+
*/
|
|
28
|
+
export declare class BatchService extends BaseService {
|
|
29
|
+
/**
|
|
30
|
+
* 批量更新工作项字段值
|
|
31
|
+
*
|
|
32
|
+
* 批量修改工作项的单个字段值,最多支持 50 个工作项同时更新
|
|
33
|
+
*
|
|
34
|
+
* @param request 批量更新请求
|
|
35
|
+
* @param options 请求选项
|
|
36
|
+
* @returns 任务 ID,用于查询处理进度
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* // UPDATE 模式:直接修改字段值
|
|
41
|
+
* const result = await client.workItem.batch.batchUpdate({
|
|
42
|
+
* project_key: 'my-project',
|
|
43
|
+
* work_item_ids: [123, 456, 789],
|
|
44
|
+
* work_item_type_key: 'story',
|
|
45
|
+
* update_mode: 'UPDATE',
|
|
46
|
+
* field_key: 'priority',
|
|
47
|
+
* after_field_value: 'P0',
|
|
48
|
+
* });
|
|
49
|
+
* console.log('任务ID:', result.task_id);
|
|
50
|
+
*
|
|
51
|
+
* // APPEND 模式:追加到多选字段
|
|
52
|
+
* const result = await client.workItem.batch.batchUpdate({
|
|
53
|
+
* project_key: 'my-project',
|
|
54
|
+
* work_item_ids: [123, 456],
|
|
55
|
+
* work_item_type_key: 'story',
|
|
56
|
+
* update_mode: 'APPEND',
|
|
57
|
+
* field_key: 'tags',
|
|
58
|
+
* after_field_value: ['新标签'],
|
|
59
|
+
* });
|
|
60
|
+
*
|
|
61
|
+
* // REPLACE 模式:替换多选字段中的特定值
|
|
62
|
+
* const result = await client.workItem.batch.batchUpdate({
|
|
63
|
+
* project_key: 'my-project',
|
|
64
|
+
* work_item_ids: [123, 456],
|
|
65
|
+
* work_item_type_key: 'story',
|
|
66
|
+
* update_mode: 'REPLACE',
|
|
67
|
+
* field_key: 'tags',
|
|
68
|
+
* before_field_value: '旧标签',
|
|
69
|
+
* after_field_value: '新标签',
|
|
70
|
+
* });
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
batchUpdate(request: BatchUpdateRequest, options?: ServiceRequestOptions<BatchUpdateResponse>): Promise<BatchUpdateResponse>;
|
|
74
|
+
/**
|
|
75
|
+
* 获取批量更新处理进度
|
|
76
|
+
*
|
|
77
|
+
* 查询批量更新任务的执行状态和结果
|
|
78
|
+
*
|
|
79
|
+
* @param taskId 任务 ID(由 batchUpdate 返回)
|
|
80
|
+
* @param options 请求选项
|
|
81
|
+
* @returns 任务执行状态和结果
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* // 发起批量更新
|
|
86
|
+
* const updateResult = await client.workItem.batch.batchUpdate({
|
|
87
|
+
* project_key: 'my-project',
|
|
88
|
+
* work_item_ids: [123, 456, 789],
|
|
89
|
+
* work_item_type_key: 'story',
|
|
90
|
+
* update_mode: 'UPDATE',
|
|
91
|
+
* field_key: 'priority',
|
|
92
|
+
* after_field_value: 'P0',
|
|
93
|
+
* });
|
|
94
|
+
*
|
|
95
|
+
* // 查询任务进度
|
|
96
|
+
* const taskResult = await client.workItem.batch.getTaskResult(updateResult.task_id);
|
|
97
|
+
* console.log('任务状态:', taskResult.task_status);
|
|
98
|
+
* console.log('成功数:', taskResult.success_total);
|
|
99
|
+
* console.log('失败数:', taskResult.error_total);
|
|
100
|
+
*
|
|
101
|
+
* // 轮询等待任务完成
|
|
102
|
+
* while (taskResult.task_status === 'RUNNING') {
|
|
103
|
+
* await new Promise(resolve => setTimeout(resolve, 1000));
|
|
104
|
+
* taskResult = await client.workItem.batch.getTaskResult(updateResult.task_id);
|
|
105
|
+
* }
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
getTaskResult(taskId: string, options?: ServiceRequestOptions<BatchTaskResult>): Promise<BatchTaskResult>;
|
|
109
|
+
/**
|
|
110
|
+
* 交付物信息批量查询
|
|
111
|
+
*
|
|
112
|
+
* 批量查询工作项的交付物(WBS)信息,最多支持 10 个工作项
|
|
113
|
+
*
|
|
114
|
+
* @param request 批量查询请求
|
|
115
|
+
* @param options 请求选项
|
|
116
|
+
* @returns 工作项交付物信息列表
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```typescript
|
|
120
|
+
* // 查询多个工作项的交付物
|
|
121
|
+
* const result = await client.workItem.batch.queryDeliverables({
|
|
122
|
+
* project_key: 'my-project',
|
|
123
|
+
* work_item_ids: [123, 456],
|
|
124
|
+
* });
|
|
125
|
+
*
|
|
126
|
+
* for (const item of result) {
|
|
127
|
+
* console.log('交付物 UUID:', item.deliverable_uuid);
|
|
128
|
+
* console.log('交付物类型:', item.deliverable_type);
|
|
129
|
+
* console.log('交付物名称:', item.deliverable_info.name);
|
|
130
|
+
* }
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
queryDeliverables(request: DeliverableBatchQueryRequest, options?: ServiceRequestOptions<WorkItemDeliverable[]>): Promise<WorkItemDeliverable[]>;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=batch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../src/service/workitem/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,4BAA4B,EAC5B,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAEjC,aAAa;AACb,eAAO,MAAM,SAAS;IACpB,iBAAiB;;IAEjB,iBAAiB;;IAEjB,qBAAqB;;CAEtB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACG,WAAW,CACf,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,GACnD,OAAO,CAAC,mBAAmB,CAAC;IAI/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,CAAC,eAAe,CAAC,GAC/C,OAAO,CAAC,eAAe,CAAC;IAU3B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,iBAAiB,CACrB,OAAO,EAAE,4BAA4B,EACrC,OAAO,CAAC,EAAE,qBAAqB,CAAC,mBAAmB,EAAE,CAAC,GACrD,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAGlC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 批量操作服务
|
|
3
|
+
* 100% 参考 Meego API 文档
|
|
4
|
+
*
|
|
5
|
+
* 提供工作项的批量操作能力:
|
|
6
|
+
* - 批量更新工作项字段值
|
|
7
|
+
* - 获取批量更新处理进度
|
|
8
|
+
* - 交付物信息批量查询
|
|
9
|
+
*
|
|
10
|
+
* 注意:评审意见/结论批量查询已移至 ReviewService.batchQuery()
|
|
11
|
+
*/
|
|
12
|
+
import { BaseService } from '../../core/base-service.js';
|
|
13
|
+
/** API 路径 */
|
|
14
|
+
export const API_PATHS = {
|
|
15
|
+
/** 批量更新工作项字段值 */
|
|
16
|
+
BATCH_UPDATE: '/open_api/work_item/batch_update',
|
|
17
|
+
/** 获取批量更新处理进度 */
|
|
18
|
+
TASK_RESULT: '/open_api/task_result',
|
|
19
|
+
/** 交付物信息批量查询(WBS) */
|
|
20
|
+
DELIVERABLE_BATCH_QUERY: '/open_api/work_item/deliverable/batch_query',
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* 批量操作服务
|
|
24
|
+
*
|
|
25
|
+
* 提供工作项的批量操作能力
|
|
26
|
+
*/
|
|
27
|
+
export class BatchService extends BaseService {
|
|
28
|
+
/**
|
|
29
|
+
* 批量更新工作项字段值
|
|
30
|
+
*
|
|
31
|
+
* 批量修改工作项的单个字段值,最多支持 50 个工作项同时更新
|
|
32
|
+
*
|
|
33
|
+
* @param request 批量更新请求
|
|
34
|
+
* @param options 请求选项
|
|
35
|
+
* @returns 任务 ID,用于查询处理进度
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* // UPDATE 模式:直接修改字段值
|
|
40
|
+
* const result = await client.workItem.batch.batchUpdate({
|
|
41
|
+
* project_key: 'my-project',
|
|
42
|
+
* work_item_ids: [123, 456, 789],
|
|
43
|
+
* work_item_type_key: 'story',
|
|
44
|
+
* update_mode: 'UPDATE',
|
|
45
|
+
* field_key: 'priority',
|
|
46
|
+
* after_field_value: 'P0',
|
|
47
|
+
* });
|
|
48
|
+
* console.log('任务ID:', result.task_id);
|
|
49
|
+
*
|
|
50
|
+
* // APPEND 模式:追加到多选字段
|
|
51
|
+
* const result = await client.workItem.batch.batchUpdate({
|
|
52
|
+
* project_key: 'my-project',
|
|
53
|
+
* work_item_ids: [123, 456],
|
|
54
|
+
* work_item_type_key: 'story',
|
|
55
|
+
* update_mode: 'APPEND',
|
|
56
|
+
* field_key: 'tags',
|
|
57
|
+
* after_field_value: ['新标签'],
|
|
58
|
+
* });
|
|
59
|
+
*
|
|
60
|
+
* // REPLACE 模式:替换多选字段中的特定值
|
|
61
|
+
* const result = await client.workItem.batch.batchUpdate({
|
|
62
|
+
* project_key: 'my-project',
|
|
63
|
+
* work_item_ids: [123, 456],
|
|
64
|
+
* work_item_type_key: 'story',
|
|
65
|
+
* update_mode: 'REPLACE',
|
|
66
|
+
* field_key: 'tags',
|
|
67
|
+
* before_field_value: '旧标签',
|
|
68
|
+
* after_field_value: '新标签',
|
|
69
|
+
* });
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
async batchUpdate(request, options) {
|
|
73
|
+
return this.post(API_PATHS.BATCH_UPDATE, request, options);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* 获取批量更新处理进度
|
|
77
|
+
*
|
|
78
|
+
* 查询批量更新任务的执行状态和结果
|
|
79
|
+
*
|
|
80
|
+
* @param taskId 任务 ID(由 batchUpdate 返回)
|
|
81
|
+
* @param options 请求选项
|
|
82
|
+
* @returns 任务执行状态和结果
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* // 发起批量更新
|
|
87
|
+
* const updateResult = await client.workItem.batch.batchUpdate({
|
|
88
|
+
* project_key: 'my-project',
|
|
89
|
+
* work_item_ids: [123, 456, 789],
|
|
90
|
+
* work_item_type_key: 'story',
|
|
91
|
+
* update_mode: 'UPDATE',
|
|
92
|
+
* field_key: 'priority',
|
|
93
|
+
* after_field_value: 'P0',
|
|
94
|
+
* });
|
|
95
|
+
*
|
|
96
|
+
* // 查询任务进度
|
|
97
|
+
* const taskResult = await client.workItem.batch.getTaskResult(updateResult.task_id);
|
|
98
|
+
* console.log('任务状态:', taskResult.task_status);
|
|
99
|
+
* console.log('成功数:', taskResult.success_total);
|
|
100
|
+
* console.log('失败数:', taskResult.error_total);
|
|
101
|
+
*
|
|
102
|
+
* // 轮询等待任务完成
|
|
103
|
+
* while (taskResult.task_status === 'RUNNING') {
|
|
104
|
+
* await new Promise(resolve => setTimeout(resolve, 1000));
|
|
105
|
+
* taskResult = await client.workItem.batch.getTaskResult(updateResult.task_id);
|
|
106
|
+
* }
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
async getTaskResult(taskId, options) {
|
|
110
|
+
return this.get(API_PATHS.TASK_RESULT, {
|
|
111
|
+
...options,
|
|
112
|
+
query: {
|
|
113
|
+
task_id: taskId,
|
|
114
|
+
...options?.query,
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 交付物信息批量查询
|
|
120
|
+
*
|
|
121
|
+
* 批量查询工作项的交付物(WBS)信息,最多支持 10 个工作项
|
|
122
|
+
*
|
|
123
|
+
* @param request 批量查询请求
|
|
124
|
+
* @param options 请求选项
|
|
125
|
+
* @returns 工作项交付物信息列表
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* // 查询多个工作项的交付物
|
|
130
|
+
* const result = await client.workItem.batch.queryDeliverables({
|
|
131
|
+
* project_key: 'my-project',
|
|
132
|
+
* work_item_ids: [123, 456],
|
|
133
|
+
* });
|
|
134
|
+
*
|
|
135
|
+
* for (const item of result) {
|
|
136
|
+
* console.log('交付物 UUID:', item.deliverable_uuid);
|
|
137
|
+
* console.log('交付物类型:', item.deliverable_type);
|
|
138
|
+
* console.log('交付物名称:', item.deliverable_info.name);
|
|
139
|
+
* }
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
async queryDeliverables(request, options) {
|
|
143
|
+
return this.post(API_PATHS.DELIVERABLE_BATCH_QUERY, request, options);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/service/workitem/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAA8B,MAAM,4BAA4B,CAAC;AASrF,aAAa;AACb,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iBAAiB;IACjB,YAAY,EAAE,kCAAkC;IAChD,iBAAiB;IACjB,WAAW,EAAE,uBAAuB;IACpC,qBAAqB;IACrB,uBAAuB,EAAE,6CAA6C;CACvE,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,YAAa,SAAQ,WAAW;IAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,KAAK,CAAC,WAAW,CACf,OAA2B,EAC3B,OAAoD;QAEpD,OAAO,IAAI,CAAC,IAAI,CAAsB,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,KAAK,CAAC,aAAa,CACjB,MAAc,EACd,OAAgD;QAEhD,OAAO,IAAI,CAAC,GAAG,CAAkB,SAAS,CAAC,WAAW,EAAE;YACtD,GAAG,OAAO;YACV,KAAK,EAAE;gBACL,OAAO,EAAE,MAAM;gBACf,GAAG,OAAO,EAAE,KAAK;aAClB;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,iBAAiB,CACrB,OAAqC,EACrC,OAAsD;QAEtD,OAAO,IAAI,CAAC,IAAI,CAAwB,SAAS,CAAC,uBAAuB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/F,CAAC;CACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 群聊服务
|
|
3
|
+
* 100% 参考 Meego API 文档
|
|
4
|
+
*
|
|
5
|
+
* 提供工作项关联群的机器人管理能力
|
|
6
|
+
*/
|
|
7
|
+
import { BaseService, type ServiceRequestOptions } from '../../core/base-service.js';
|
|
8
|
+
import type { BotJoinChatRequest, BotJoinChatResponse } from '../../types/workitem.js';
|
|
9
|
+
/** API 路径 */
|
|
10
|
+
export declare const API_PATHS: {
|
|
11
|
+
/** 拉机器人入群 */
|
|
12
|
+
BOT_JOIN_CHAT: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* 群聊服务
|
|
16
|
+
*
|
|
17
|
+
* 提供工作项关联群的机器人管理功能
|
|
18
|
+
*/
|
|
19
|
+
export declare class ChatService extends BaseService {
|
|
20
|
+
/**
|
|
21
|
+
* 拉机器人入群
|
|
22
|
+
*
|
|
23
|
+
* 将指定飞书机器人拉入工作项关联群
|
|
24
|
+
*
|
|
25
|
+
* @param projectKey 空间 ID 或域名
|
|
26
|
+
* @param workItemId 工作项 ID
|
|
27
|
+
* @param request 拉机器人入群请求
|
|
28
|
+
* @param options 请求选项
|
|
29
|
+
* @returns 机器人入群结果
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const result = await client.workItem.chat.botJoinChat('my-project', 123456, {
|
|
34
|
+
* work_item_type_key: 'story',
|
|
35
|
+
* app_ids: ['cli_xxx'],
|
|
36
|
+
* });
|
|
37
|
+
* console.log(result.chat_id);
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
botJoinChat(projectKey: string, workItemId: number, request: BotJoinChatRequest, options?: ServiceRequestOptions<BotJoinChatResponse>): Promise<BotJoinChatResponse>;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/service/workitem/chat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEvF,aAAa;AACb,eAAO,MAAM,SAAS;IACpB,aAAa;;CAEd,CAAC;AAEF;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,WAAW;IAC1C;;;;;;;;;;;;;;;;;;;OAmBG;IACG,WAAW,CACf,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,GACnD,OAAO,CAAC,mBAAmB,CAAC;CAUhC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 群聊服务
|
|
3
|
+
* 100% 参考 Meego API 文档
|
|
4
|
+
*
|
|
5
|
+
* 提供工作项关联群的机器人管理能力
|
|
6
|
+
*/
|
|
7
|
+
import { BaseService } from '../../core/base-service.js';
|
|
8
|
+
/** API 路径 */
|
|
9
|
+
export const API_PATHS = {
|
|
10
|
+
/** 拉机器人入群 */
|
|
11
|
+
BOT_JOIN_CHAT: '/open_api/:project_key/work_item/:work_item_id/bot_join_chat',
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* 群聊服务
|
|
15
|
+
*
|
|
16
|
+
* 提供工作项关联群的机器人管理功能
|
|
17
|
+
*/
|
|
18
|
+
export class ChatService extends BaseService {
|
|
19
|
+
/**
|
|
20
|
+
* 拉机器人入群
|
|
21
|
+
*
|
|
22
|
+
* 将指定飞书机器人拉入工作项关联群
|
|
23
|
+
*
|
|
24
|
+
* @param projectKey 空间 ID 或域名
|
|
25
|
+
* @param workItemId 工作项 ID
|
|
26
|
+
* @param request 拉机器人入群请求
|
|
27
|
+
* @param options 请求选项
|
|
28
|
+
* @returns 机器人入群结果
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const result = await client.workItem.chat.botJoinChat('my-project', 123456, {
|
|
33
|
+
* work_item_type_key: 'story',
|
|
34
|
+
* app_ids: ['cli_xxx'],
|
|
35
|
+
* });
|
|
36
|
+
* console.log(result.chat_id);
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
async botJoinChat(projectKey, workItemId, request, options) {
|
|
40
|
+
return this.post(API_PATHS.BOT_JOIN_CHAT, request, {
|
|
41
|
+
...options,
|
|
42
|
+
pathParams: {
|
|
43
|
+
project_key: projectKey,
|
|
44
|
+
work_item_id: String(workItemId),
|
|
45
|
+
...options?.pathParams,
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/service/workitem/chat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAA8B,MAAM,4BAA4B,CAAC;AAGrF,aAAa;AACb,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,aAAa;IACb,aAAa,EAAE,8DAA8D;CAC9E,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,WAAW,CACf,UAAkB,EAClB,UAAkB,EAClB,OAA2B,EAC3B,OAAoD;QAEpD,OAAO,IAAI,CAAC,IAAI,CAAsB,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE;YACtE,GAAG,OAAO;YACV,UAAU,EAAE;gBACV,WAAW,EAAE,UAAU;gBACvB,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC;gBAChC,GAAG,OAAO,EAAE,UAAU;aACvB;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 评论服务
|
|
3
|
+
* 100% 参考 Meego API 文档
|
|
4
|
+
*
|
|
5
|
+
* 提供工作项评论的创建、查询、更新、删除功能
|
|
6
|
+
*/
|
|
7
|
+
import { BaseService, type ServiceRequestOptions } from '../../core/base-service.js';
|
|
8
|
+
import type { PaginatedResult } from '../../types/common.js';
|
|
9
|
+
import type { Comment, CreateCommentRequest, UpdateCommentRequest, ListCommentsQuery } from '../../types/workitem.js';
|
|
10
|
+
/** API 路径 */
|
|
11
|
+
export declare const API_PATHS: {
|
|
12
|
+
/** 添加评论 */
|
|
13
|
+
CREATE: string;
|
|
14
|
+
/** 查询评论 */
|
|
15
|
+
LIST: string;
|
|
16
|
+
/** 更新评论 */
|
|
17
|
+
UPDATE: string;
|
|
18
|
+
/** 删除评论 */
|
|
19
|
+
DELETE: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* 评论服务
|
|
23
|
+
*
|
|
24
|
+
* 提供工作项评论的创建、查询、更新、删除功能
|
|
25
|
+
*/
|
|
26
|
+
export declare class CommentService extends BaseService {
|
|
27
|
+
/**
|
|
28
|
+
* 添加评论
|
|
29
|
+
*
|
|
30
|
+
* 在指定工作项下添加一条评论,添加的评论内容会出现在工作项详情页评论/备注 tab 页中
|
|
31
|
+
*
|
|
32
|
+
* @param projectKey 空间 ID 或域名
|
|
33
|
+
* @param workItemTypeKey 工作项类型
|
|
34
|
+
* @param workItemId 工作项 ID
|
|
35
|
+
* @param request 创建请求(content 或 rich_text 二选一,都有值时 rich_text 优先)
|
|
36
|
+
* @param options 请求选项
|
|
37
|
+
* @returns 新建的评论 ID(字符串格式,避免大整数精度丢失)
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* // 添加纯文本评论
|
|
42
|
+
* const commentId = await client.workItem.comment.create('my-project', 'story', 123456, {
|
|
43
|
+
* content: '这是一条测试评论',
|
|
44
|
+
* });
|
|
45
|
+
* console.log(commentId); // "7587846609728458752"
|
|
46
|
+
*
|
|
47
|
+
* // 添加富文本评论
|
|
48
|
+
* const commentId = await client.workItem.comment.create('my-project', 'story', 123456, {
|
|
49
|
+
* rich_text: [
|
|
50
|
+
* {
|
|
51
|
+
* type: 'paragraph',
|
|
52
|
+
* content: [
|
|
53
|
+
* { type: 'text', text: '加粗文字', attrs: { fontColor: 'green', fontSize: 'h1' } }
|
|
54
|
+
* ]
|
|
55
|
+
* }
|
|
56
|
+
* ]
|
|
57
|
+
* });
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
create(projectKey: string, workItemTypeKey: string, workItemId: number, request: CreateCommentRequest, options?: ServiceRequestOptions<string>): Promise<string>;
|
|
61
|
+
/**
|
|
62
|
+
* 查询评论列表
|
|
63
|
+
*
|
|
64
|
+
* 获取指定工作项下的所有评论信息,按照创建时间升序返回
|
|
65
|
+
*
|
|
66
|
+
* @param projectKey 空间 ID 或域名
|
|
67
|
+
* @param workItemTypeKey 工作项类型
|
|
68
|
+
* @param workItemId 工作项 ID
|
|
69
|
+
* @param query 分页参数
|
|
70
|
+
* @param options 请求选项
|
|
71
|
+
* @returns 分页的评论列表
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* // 获取所有评论
|
|
76
|
+
* const result = await client.workItem.comment.list('my-project', 'story', 123456);
|
|
77
|
+
* console.log(result.pagination.total); // 评论总数
|
|
78
|
+
* console.log(result.data); // 评论列表
|
|
79
|
+
*
|
|
80
|
+
* // 分页获取评论
|
|
81
|
+
* const result = await client.workItem.comment.list('my-project', 'story', 123456, {
|
|
82
|
+
* page_size: 20,
|
|
83
|
+
* page_num: 1,
|
|
84
|
+
* });
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
list(projectKey: string, workItemTypeKey: string, workItemId: number, query?: ListCommentsQuery, options?: ServiceRequestOptions<Comment>): Promise<PaginatedResult<Comment>>;
|
|
88
|
+
/**
|
|
89
|
+
* 更新评论
|
|
90
|
+
*
|
|
91
|
+
* 更新指定评论的内容,仅评论创建人可以更新该评论
|
|
92
|
+
*
|
|
93
|
+
* @param projectKey 空间 ID 或域名
|
|
94
|
+
* @param workItemTypeKey 工作项类型
|
|
95
|
+
* @param workItemId 工作项 ID
|
|
96
|
+
* @param commentId 评论 ID(字符串格式)
|
|
97
|
+
* @param request 更新请求(content 或 rich_text 二选一,都有值时 rich_text 优先)
|
|
98
|
+
* @param options 请求选项
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* // 更新为纯文本评论
|
|
103
|
+
* await client.workItem.comment.update('my-project', 'story', 123456, '7587846609728458752', {
|
|
104
|
+
* content: '更新后的评论内容',
|
|
105
|
+
* });
|
|
106
|
+
*
|
|
107
|
+
* // 更新为富文本评论
|
|
108
|
+
* await client.workItem.comment.update('my-project', 'story', 123456, commentId, {
|
|
109
|
+
* rich_text: [
|
|
110
|
+
* {
|
|
111
|
+
* type: 'paragraph',
|
|
112
|
+
* content: [
|
|
113
|
+
* { type: 'text', text: '更新后的富文本', attrs: { fontColor: 'red' } }
|
|
114
|
+
* ]
|
|
115
|
+
* }
|
|
116
|
+
* ]
|
|
117
|
+
* });
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
update(projectKey: string, workItemTypeKey: string, workItemId: number, commentId: string, request: UpdateCommentRequest, options?: ServiceRequestOptions<void>): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* 删除评论
|
|
123
|
+
*
|
|
124
|
+
* 删除工作项下一条指定的评论信息,仅评论创建人可以删除评论
|
|
125
|
+
*
|
|
126
|
+
* @param projectKey 空间 ID 或域名
|
|
127
|
+
* @param workItemTypeKey 工作项类型
|
|
128
|
+
* @param workItemId 工作项 ID
|
|
129
|
+
* @param commentId 评论 ID(字符串格式)
|
|
130
|
+
* @param options 请求选项
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```typescript
|
|
134
|
+
* await client.workItem.comment.remove('my-project', 'story', 123456, '7587846609728458752');
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
remove(projectKey: string, workItemTypeKey: string, workItemId: number, commentId: string, options?: ServiceRequestOptions<void>): Promise<void>;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=comment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comment.d.ts","sourceRoot":"","sources":["../../../src/service/workitem/comment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EACV,OAAO,EACP,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAEjC,aAAa;AACb,eAAO,MAAM,SAAS;IACpB,WAAW;;IAEX,WAAW;;IAEX,WAAW;;IAEX,WAAW;;CAEZ,CAAC;AAEF;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,oBAAoB,EAC7B,OAAO,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC;IAgBlB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,IAAI,CACR,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,GACvC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAgBpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACG,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,EAC7B,OAAO,CAAC,EAAE,qBAAqB,CAAC,IAAI,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC;IAiBhB;;;;;;;;;;;;;;;OAeG;IACG,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,qBAAqB,CAAC,IAAI,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC;CAejB"}
|