@nest-packages/nestjs-lark-sdk 0.1.0 → 0.1.2

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.
Files changed (53) hide show
  1. package/dist/bitable-base-field.d.ts +309 -0
  2. package/dist/bitable-base-field.js +320 -0
  3. package/dist/bitable-base-field.js.map +1 -0
  4. package/dist/bitable-base-record.d.ts +214 -0
  5. package/dist/bitable-base-record.js +289 -0
  6. package/dist/bitable-base-record.js.map +1 -0
  7. package/dist/bitable-base.abstract.d.ts +18 -0
  8. package/dist/bitable-base.abstract.js +68 -0
  9. package/dist/bitable-base.abstract.js.map +1 -0
  10. package/dist/contact-base.d.ts +333 -0
  11. package/dist/contact-base.js +239 -0
  12. package/dist/contact-base.js.map +1 -0
  13. package/dist/feishu-base-plus.d.ts +26 -0
  14. package/dist/feishu-base-plus.js +187 -0
  15. package/dist/feishu-base-plus.js.map +1 -0
  16. package/dist/feishu-code.d.ts +22 -0
  17. package/dist/feishu-code.js +26 -0
  18. package/dist/feishu-code.js.map +1 -0
  19. package/dist/feishu.constants.d.ts +2 -0
  20. package/dist/feishu.constants.js +6 -0
  21. package/dist/feishu.constants.js.map +1 -0
  22. package/dist/feishu.utils.d.ts +11 -0
  23. package/dist/feishu.utils.js +23 -0
  24. package/dist/feishu.utils.js.map +1 -0
  25. package/dist/im-base.config.d.ts +3 -0
  26. package/dist/im-base.config.js +18 -0
  27. package/dist/im-base.config.js.map +1 -0
  28. package/dist/im-base.d.ts +140 -0
  29. package/dist/im-base.js +288 -0
  30. package/dist/im-base.js.map +1 -0
  31. package/dist/im-base.type.d.ts +27 -0
  32. package/dist/im-base.type.js +3 -0
  33. package/dist/im-base.type.js.map +1 -0
  34. package/dist/index.d.ts +8 -0
  35. package/dist/index.js +25 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/nestjs-lark-sdk.module.d.ts +24 -0
  38. package/dist/nestjs-lark-sdk.module.js +95 -0
  39. package/dist/nestjs-lark-sdk.module.js.map +1 -0
  40. package/dist/nestjs-lark-sdk.service.d.ts +1 -0
  41. package/dist/nestjs-lark-sdk.service.js +17 -0
  42. package/dist/nestjs-lark-sdk.service.js.map +1 -0
  43. package/dist/tsconfig.build.tsbuildinfo +1 -0
  44. package/dist/type.bitable.d.ts +12 -0
  45. package/dist/type.bitable.js +3 -0
  46. package/dist/type.bitable.js.map +1 -0
  47. package/dist/type.d.ts +68 -0
  48. package/dist/type.js +3 -0
  49. package/dist/type.js.map +1 -0
  50. package/dist/types/index.d.ts +224 -0
  51. package/dist/types/index.js +3 -0
  52. package/dist/types/index.js.map +1 -0
  53. package/package.json +13 -6
@@ -0,0 +1,309 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { appTableCreateData, appTableFieldCreateData, appTableFieldCreatePath } from './types';
3
+ import { AbstractBaseBitable } from './bitable-base.abstract';
4
+ import { FeishuBasePlus } from './feishu-base-plus';
5
+ export declare enum fieldTypeEnum {
6
+ '多行文本' = 1,
7
+ '数字' = 2,
8
+ '单选' = 3,
9
+ '多选' = 4,
10
+ '日期' = 5,
11
+ '复选框' = 7,
12
+ '人员' = 11,
13
+ '电话号码' = 13,
14
+ '超链接' = 15,
15
+ '附件' = 17,
16
+ '单向关联' = 18,
17
+ '公式' = 20,
18
+ '双向关联' = 21,
19
+ '地理位置' = 22,
20
+ '群组' = 23,
21
+ '创建时间' = 1001,
22
+ '最后更新时间' = 1002,
23
+ '创建人' = 1003,
24
+ '修改人' = 1004,
25
+ '自动编号' = 1005
26
+ }
27
+ export declare const FIELD_MAPPING: {
28
+ 文本: {
29
+ type: number;
30
+ ui_type: string;
31
+ desc: string;
32
+ };
33
+ 条码: {
34
+ type: number;
35
+ ui_type: string;
36
+ desc: string;
37
+ };
38
+ 邮箱: {
39
+ type: number;
40
+ ui_type: string;
41
+ desc: string;
42
+ };
43
+ 数字: {
44
+ type: number;
45
+ ui_type: string;
46
+ desc: string;
47
+ };
48
+ 进度: {
49
+ type: number;
50
+ ui_type: string;
51
+ desc: string;
52
+ };
53
+ 货币: {
54
+ type: number;
55
+ ui_type: string;
56
+ desc: string;
57
+ };
58
+ 评分: {
59
+ type: number;
60
+ ui_type: string;
61
+ desc: string;
62
+ };
63
+ 单选: {
64
+ type: number;
65
+ ui_type: string;
66
+ desc: string;
67
+ };
68
+ 多选: {
69
+ type: number;
70
+ ui_type: string;
71
+ desc: string;
72
+ };
73
+ 日期: {
74
+ type: number;
75
+ ui_type: string;
76
+ desc: string;
77
+ };
78
+ 复选框: {
79
+ type: number;
80
+ ui_type: string;
81
+ desc: string;
82
+ };
83
+ 人员: {
84
+ type: number;
85
+ ui_type: string;
86
+ desc: string;
87
+ };
88
+ 电话号码: {
89
+ type: number;
90
+ ui_type: string;
91
+ desc: string;
92
+ };
93
+ 超链接: {
94
+ type: number;
95
+ ui_type: string;
96
+ desc: string;
97
+ };
98
+ 附件: {
99
+ type: number;
100
+ ui_type: string;
101
+ desc: string;
102
+ };
103
+ 单向关联: {
104
+ type: number;
105
+ ui_type: string;
106
+ desc: string;
107
+ };
108
+ 查找引用: {
109
+ type: number;
110
+ ui_type: string;
111
+ desc: string;
112
+ };
113
+ 公式: {
114
+ type: number;
115
+ ui_type: string;
116
+ desc: string;
117
+ };
118
+ 双向关联: {
119
+ type: number;
120
+ ui_type: string;
121
+ desc: string;
122
+ };
123
+ 地理位置: {
124
+ type: number;
125
+ ui_type: string;
126
+ desc: string;
127
+ };
128
+ 群组: {
129
+ type: number;
130
+ ui_type: string;
131
+ desc: string;
132
+ };
133
+ 创建时间: {
134
+ type: number;
135
+ ui_type: string;
136
+ desc: string;
137
+ };
138
+ 最后更新时间: {
139
+ type: number;
140
+ ui_type: string;
141
+ desc: string;
142
+ };
143
+ 创建人: {
144
+ type: number;
145
+ ui_type: string;
146
+ desc: string;
147
+ };
148
+ 修改人: {
149
+ type: number;
150
+ ui_type: string;
151
+ desc: string;
152
+ };
153
+ 自动编号: {
154
+ type: number;
155
+ ui_type: string;
156
+ desc: string;
157
+ };
158
+ };
159
+ export declare class BitableFieldBase extends AbstractBaseBitable {
160
+ readonly logger: Logger;
161
+ bitablePath: appTableFieldCreatePath;
162
+ bitableUrl: string;
163
+ constructor(feishuBaseInstance: FeishuBasePlus, bitableUrl: string);
164
+ setBitablePath(path: appTableFieldCreatePath | string): Promise<{
165
+ app_token: string;
166
+ table_id: string;
167
+ }>;
168
+ getBitablePath(bitableUrl?: string): Promise<{
169
+ app_token: string;
170
+ table_id: string;
171
+ }>;
172
+ batchFieldList(batchFieldListPayload: appTableFieldCreateData[]): Promise<boolean>;
173
+ sleep(ms: any): Promise<unknown>;
174
+ updateField(payloadData: appTableFieldCreateData, field_id?: string): Promise<{
175
+ field?: {
176
+ field_name: string;
177
+ type: number;
178
+ property?: {
179
+ options?: {
180
+ name?: string | undefined;
181
+ id?: string | undefined;
182
+ color?: number | undefined;
183
+ }[] | undefined;
184
+ formatter?: string | undefined;
185
+ date_formatter?: string | undefined;
186
+ auto_fill?: boolean | undefined;
187
+ multiple?: boolean | undefined;
188
+ table_id?: string | undefined;
189
+ table_name?: string | undefined;
190
+ back_field_name?: string | undefined;
191
+ auto_serial?: {
192
+ type: "custom" | "auto_increment_number";
193
+ options?: {
194
+ type: "system_number" | "fixed_text" | "created_time";
195
+ value: string;
196
+ }[] | undefined;
197
+ } | undefined;
198
+ location?: {
199
+ input_type: "only_mobile" | "not_limit";
200
+ } | undefined;
201
+ formula_expression?: string | undefined;
202
+ allowed_edit_modes?: {
203
+ manual?: boolean | undefined;
204
+ scan?: boolean | undefined;
205
+ } | undefined;
206
+ min?: number | undefined;
207
+ max?: number | undefined;
208
+ range_customize?: boolean | undefined;
209
+ currency_code?: string | undefined;
210
+ rating?: {
211
+ symbol?: string | undefined;
212
+ } | undefined;
213
+ type?: {
214
+ data_type: number;
215
+ ui_property?: {
216
+ currency_code?: string | undefined;
217
+ formatter?: string | undefined;
218
+ range_customize?: boolean | undefined;
219
+ min?: number | undefined;
220
+ max?: number | undefined;
221
+ date_formatter?: string | undefined;
222
+ rating?: {
223
+ symbol?: string | undefined;
224
+ } | undefined;
225
+ } | undefined;
226
+ ui_type?: "Number" | "Progress" | "Currency" | "Rating" | "DateTime" | undefined;
227
+ } | undefined;
228
+ } | undefined;
229
+ description?: {
230
+ disable_sync?: boolean | undefined;
231
+ text?: string | undefined;
232
+ } | undefined;
233
+ is_primary?: boolean | undefined;
234
+ field_id?: string | undefined;
235
+ ui_type?: "Text" | "Barcode" | "Number" | "Progress" | "Currency" | "Rating" | "SingleSelect" | "MultiSelect" | "DateTime" | "Checkbox" | "User" | "GroupChat" | "Phone" | "Url" | "Attachment" | "SingleLink" | "Formula" | "DuplexLink" | "Location" | "CreatedTime" | "ModifiedTime" | "CreatedUser" | "ModifiedUser" | "AutoNumber" | "Email" | undefined;
236
+ is_hidden?: boolean | undefined;
237
+ } | undefined;
238
+ }>;
239
+ getFieldList(): Promise<{
240
+ field_name: string;
241
+ type: number;
242
+ property?: {
243
+ options?: {
244
+ name?: string | undefined;
245
+ id?: string | undefined;
246
+ color?: number | undefined;
247
+ }[] | undefined;
248
+ formatter?: string | undefined;
249
+ date_formatter?: string | undefined;
250
+ auto_fill?: boolean | undefined;
251
+ multiple?: boolean | undefined;
252
+ table_id?: string | undefined;
253
+ table_name?: string | undefined;
254
+ back_field_name?: string | undefined;
255
+ auto_serial?: {
256
+ type: "custom" | "auto_increment_number";
257
+ options?: {
258
+ type: "system_number" | "fixed_text" | "created_time";
259
+ value: string;
260
+ }[] | undefined;
261
+ } | undefined;
262
+ location?: {
263
+ input_type: "only_mobile" | "not_limit";
264
+ } | undefined;
265
+ formula_expression?: string | undefined;
266
+ allowed_edit_modes?: {
267
+ manual?: boolean | undefined;
268
+ scan?: boolean | undefined;
269
+ } | undefined;
270
+ min?: number | undefined;
271
+ max?: number | undefined;
272
+ range_customize?: boolean | undefined;
273
+ currency_code?: string | undefined;
274
+ rating?: {
275
+ symbol?: string | undefined;
276
+ } | undefined;
277
+ type?: {
278
+ data_type: number;
279
+ ui_property?: {
280
+ currency_code?: string | undefined;
281
+ formatter?: string | undefined;
282
+ range_customize?: boolean | undefined;
283
+ min?: number | undefined;
284
+ max?: number | undefined;
285
+ date_formatter?: string | undefined;
286
+ rating?: {
287
+ symbol?: string | undefined;
288
+ } | undefined;
289
+ } | undefined;
290
+ ui_type?: "Number" | "Progress" | "Currency" | "Rating" | "DateTime" | undefined;
291
+ } | undefined;
292
+ } | undefined;
293
+ description?: string | undefined;
294
+ is_primary?: boolean | undefined;
295
+ field_id?: string | undefined;
296
+ ui_type?: "Text" | "Barcode" | "Number" | "Progress" | "Currency" | "Rating" | "SingleSelect" | "MultiSelect" | "DateTime" | "Checkbox" | "User" | "GroupChat" | "Phone" | "Url" | "Attachment" | "SingleLink" | "Formula" | "DuplexLink" | "Location" | "CreatedTime" | "ModifiedTime" | "CreatedUser" | "ModifiedUser" | "AutoNumber" | undefined;
297
+ is_hidden?: boolean | undefined;
298
+ }[]>;
299
+ getAppTableList(path: appTableFieldCreatePath): Promise<{
300
+ table_id?: string | undefined;
301
+ revision?: number | undefined;
302
+ name?: string | undefined;
303
+ }[]>;
304
+ getTargetTable(bitableUrl: string, tableName: any, batchFieldListPayload: appTableCreateData[]): Promise<{
305
+ table_id: string;
306
+ app_token: string;
307
+ }>;
308
+ getAppTableCreate(tableName: string, appToken: string, batchFieldListPayload: appTableCreateData[]): Promise<string>;
309
+ }
@@ -0,0 +1,320 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BitableFieldBase = exports.FIELD_MAPPING = exports.fieldTypeEnum = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const lodash_1 = require("lodash");
6
+ const bitable_base_abstract_1 = require("./bitable-base.abstract");
7
+ const feishu_code_1 = require("./feishu-code");
8
+ var fieldTypeEnum;
9
+ (function (fieldTypeEnum) {
10
+ fieldTypeEnum[fieldTypeEnum["\u591A\u884C\u6587\u672C"] = 1] = "\u591A\u884C\u6587\u672C";
11
+ fieldTypeEnum[fieldTypeEnum["\u6570\u5B57"] = 2] = "\u6570\u5B57";
12
+ fieldTypeEnum[fieldTypeEnum["\u5355\u9009"] = 3] = "\u5355\u9009";
13
+ fieldTypeEnum[fieldTypeEnum["\u591A\u9009"] = 4] = "\u591A\u9009";
14
+ fieldTypeEnum[fieldTypeEnum["\u65E5\u671F"] = 5] = "\u65E5\u671F";
15
+ fieldTypeEnum[fieldTypeEnum["\u590D\u9009\u6846"] = 7] = "\u590D\u9009\u6846";
16
+ fieldTypeEnum[fieldTypeEnum["\u4EBA\u5458"] = 11] = "\u4EBA\u5458";
17
+ fieldTypeEnum[fieldTypeEnum["\u7535\u8BDD\u53F7\u7801"] = 13] = "\u7535\u8BDD\u53F7\u7801";
18
+ fieldTypeEnum[fieldTypeEnum["\u8D85\u94FE\u63A5"] = 15] = "\u8D85\u94FE\u63A5";
19
+ fieldTypeEnum[fieldTypeEnum["\u9644\u4EF6"] = 17] = "\u9644\u4EF6";
20
+ fieldTypeEnum[fieldTypeEnum["\u5355\u5411\u5173\u8054"] = 18] = "\u5355\u5411\u5173\u8054";
21
+ fieldTypeEnum[fieldTypeEnum["\u516C\u5F0F"] = 20] = "\u516C\u5F0F";
22
+ fieldTypeEnum[fieldTypeEnum["\u53CC\u5411\u5173\u8054"] = 21] = "\u53CC\u5411\u5173\u8054";
23
+ fieldTypeEnum[fieldTypeEnum["\u5730\u7406\u4F4D\u7F6E"] = 22] = "\u5730\u7406\u4F4D\u7F6E";
24
+ fieldTypeEnum[fieldTypeEnum["\u7FA4\u7EC4"] = 23] = "\u7FA4\u7EC4";
25
+ fieldTypeEnum[fieldTypeEnum["\u521B\u5EFA\u65F6\u95F4"] = 1001] = "\u521B\u5EFA\u65F6\u95F4";
26
+ fieldTypeEnum[fieldTypeEnum["\u6700\u540E\u66F4\u65B0\u65F6\u95F4"] = 1002] = "\u6700\u540E\u66F4\u65B0\u65F6\u95F4";
27
+ fieldTypeEnum[fieldTypeEnum["\u521B\u5EFA\u4EBA"] = 1003] = "\u521B\u5EFA\u4EBA";
28
+ fieldTypeEnum[fieldTypeEnum["\u4FEE\u6539\u4EBA"] = 1004] = "\u4FEE\u6539\u4EBA";
29
+ fieldTypeEnum[fieldTypeEnum["\u81EA\u52A8\u7F16\u53F7"] = 1005] = "\u81EA\u52A8\u7F16\u53F7";
30
+ })(fieldTypeEnum || (exports.fieldTypeEnum = fieldTypeEnum = {}));
31
+ exports.FIELD_MAPPING = {
32
+ 文本: {
33
+ type: 1,
34
+ ui_type: 'Text',
35
+ desc: '默认值',
36
+ },
37
+ 条码: {
38
+ type: 1,
39
+ ui_type: 'Barcode',
40
+ desc: '条码',
41
+ },
42
+ 邮箱: {
43
+ type: 1,
44
+ ui_type: 'Email',
45
+ desc: '邮箱地址',
46
+ },
47
+ 数字: {
48
+ type: 2,
49
+ ui_type: 'Number',
50
+ desc: '默认值',
51
+ },
52
+ 进度: {
53
+ type: 2,
54
+ ui_type: 'Progress',
55
+ desc: '进度字段是数字的一种展示形态',
56
+ },
57
+ 货币: {
58
+ type: 2,
59
+ ui_type: 'Currency',
60
+ desc: '货币',
61
+ },
62
+ 评分: {
63
+ type: 2,
64
+ ui_type: 'Rating',
65
+ desc: '评分',
66
+ },
67
+ 单选: {
68
+ type: 3,
69
+ ui_type: 'SingleSelect',
70
+ desc: '单选',
71
+ },
72
+ 多选: {
73
+ type: 4,
74
+ ui_type: 'MultiSelect',
75
+ desc: '多选',
76
+ },
77
+ 日期: {
78
+ type: 5,
79
+ ui_type: 'DateTime',
80
+ desc: '日期',
81
+ },
82
+ 复选框: {
83
+ type: 7,
84
+ ui_type: 'Checkbox',
85
+ desc: '复选框',
86
+ },
87
+ 人员: {
88
+ type: 11,
89
+ ui_type: 'User',
90
+ desc: '人员',
91
+ },
92
+ 电话号码: {
93
+ type: 13,
94
+ ui_type: 'Phone',
95
+ desc: '电话号码',
96
+ },
97
+ 超链接: {
98
+ type: 15,
99
+ ui_type: 'Url',
100
+ desc: '超链接',
101
+ },
102
+ 附件: {
103
+ type: 17,
104
+ ui_type: 'Attachment',
105
+ desc: '附件',
106
+ },
107
+ 单向关联: {
108
+ type: 18,
109
+ ui_type: 'SingleLink',
110
+ desc: '单向关联',
111
+ },
112
+ 查找引用: {
113
+ type: 19,
114
+ ui_type: 'Lookup',
115
+ desc: '查找引用',
116
+ },
117
+ 公式: {
118
+ type: 20,
119
+ ui_type: 'Formula',
120
+ desc: '公式',
121
+ },
122
+ 双向关联: {
123
+ type: 21,
124
+ ui_type: 'DuplexLink',
125
+ desc: '双向关联',
126
+ },
127
+ 地理位置: {
128
+ type: 22,
129
+ ui_type: 'Location',
130
+ desc: '地理位置',
131
+ },
132
+ 群组: {
133
+ type: 23,
134
+ ui_type: 'GroupChat',
135
+ desc: '群组',
136
+ },
137
+ 创建时间: {
138
+ type: 1001,
139
+ ui_type: 'CreatedTime',
140
+ desc: '创建时间',
141
+ },
142
+ 最后更新时间: {
143
+ type: 1002,
144
+ ui_type: 'ModifiedTime',
145
+ desc: '最后更新时间',
146
+ },
147
+ 创建人: {
148
+ type: 1003,
149
+ ui_type: 'CreatedUser',
150
+ desc: '创建人',
151
+ },
152
+ 修改人: {
153
+ type: 1004,
154
+ ui_type: 'ModifiedUser',
155
+ desc: '修改人',
156
+ },
157
+ 自动编号: {
158
+ type: 1005,
159
+ ui_type: 'AutoNumber',
160
+ desc: '自动编号',
161
+ },
162
+ };
163
+ class BitableFieldBase extends bitable_base_abstract_1.AbstractBaseBitable {
164
+ constructor(feishuBaseInstance, bitableUrl) {
165
+ super(feishuBaseInstance);
166
+ this.logger = new common_1.Logger(BitableFieldBase.name);
167
+ this.bitableUrl = bitableUrl;
168
+ }
169
+ async setBitablePath(path) {
170
+ if ((0, lodash_1.isString)(path)) {
171
+ this.bitablePath = await this.getBitablePath(path);
172
+ }
173
+ else {
174
+ this.bitablePath = path;
175
+ }
176
+ return this.bitablePath;
177
+ }
178
+ async getBitablePath(bitableUrl = '') {
179
+ this.logger.debug(`getBitablePath bitableUrl ${bitableUrl}`);
180
+ if (this.bitablePath) {
181
+ return this.bitablePath;
182
+ }
183
+ this.bitablePath = await this.getPath(this.bitableUrl);
184
+ return this.bitablePath;
185
+ }
186
+ async batchFieldList(batchFieldListPayload) {
187
+ const fieldList = await this.getFieldList();
188
+ let cnt = 0;
189
+ for (const field of batchFieldListPayload) {
190
+ const matchField = fieldList.find((item) => item.field_name === field.field_name);
191
+ cnt++;
192
+ if (cnt >= 9) {
193
+ cnt = 0;
194
+ this.logger.log(`延迟支持,10次/秒 QPS 限制`);
195
+ await this.sleep(1000);
196
+ }
197
+ if (!(matchField === null || matchField === void 0 ? void 0 : matchField.field_id)) {
198
+ await this.updateField(field, matchField === null || matchField === void 0 ? void 0 : matchField.field_id);
199
+ }
200
+ }
201
+ return true;
202
+ }
203
+ sleep(ms) {
204
+ return new Promise((resolve) => setTimeout(resolve, ms));
205
+ }
206
+ async updateField(payloadData, field_id) {
207
+ const { larkClient } = this;
208
+ const bitablePath = await this.getBitablePath();
209
+ try {
210
+ if (field_id) {
211
+ const res = await larkClient.bitable.appTableField.update({
212
+ data: payloadData,
213
+ path: Object.assign(Object.assign({}, bitablePath), { field_id }),
214
+ });
215
+ if (res.code === feishu_code_1.CODE_SUCCESS) {
216
+ this.logger.log(`updateField 更新成功`, payloadData.field_name);
217
+ return res.data;
218
+ }
219
+ if (res.code === feishu_code_1.CODE_FAIL) {
220
+ }
221
+ this.logger.error(`updateField 更新失败`, res.msg, res.code, res);
222
+ }
223
+ else {
224
+ const res = await larkClient.bitable.appTableField.create({
225
+ data: payloadData,
226
+ path: bitablePath,
227
+ });
228
+ if (res.code === feishu_code_1.CODE_SUCCESS) {
229
+ this.logger.log(`updateField 新增成功`, payloadData.field_name);
230
+ return res.data;
231
+ }
232
+ if (res.code === feishu_code_1.CODE_FAIL) {
233
+ }
234
+ this.logger.error(`updateField 新增失败`, res.msg, res.code, res, payloadData);
235
+ }
236
+ }
237
+ catch (error) {
238
+ this.logger.error(`updateField 操作失败`, error);
239
+ }
240
+ return null;
241
+ }
242
+ async getFieldList() {
243
+ this.logger.debug(`getFieldList init`);
244
+ const { larkClient } = this;
245
+ const bitablePath = await this.getBitablePath();
246
+ const logger = this.logger;
247
+ logger.debug(`getFieldList bitablePath ${bitablePath.table_id}`);
248
+ let list = [];
249
+ async function loopGetFieldList(page_token) {
250
+ const res = await larkClient.bitable.appTableField.list({
251
+ params: {
252
+ page_token,
253
+ page_size: 100,
254
+ },
255
+ path: bitablePath,
256
+ });
257
+ if (res.code === feishu_code_1.CODE_SUCCESS) {
258
+ list = list.concat(res.data.items);
259
+ if (res.data.has_more) {
260
+ await loopGetFieldList(res.data.page_token);
261
+ }
262
+ }
263
+ else {
264
+ logger.error(`loopGetFieldList 获取失败`, res.msg, res.code);
265
+ }
266
+ }
267
+ try {
268
+ await loopGetFieldList('');
269
+ }
270
+ catch (error) {
271
+ this.logger.error(`getFieldList 获取失败`, error);
272
+ }
273
+ return list;
274
+ }
275
+ async getAppTableList(path) {
276
+ const { larkClient } = this.feishuBaseInstance;
277
+ const res = await larkClient.bitable.appTable.list({
278
+ params: {
279
+ page_size: 500,
280
+ },
281
+ path,
282
+ });
283
+ if (res.code === feishu_code_1.CODE_SUCCESS) {
284
+ return res.data.items;
285
+ }
286
+ }
287
+ async getTargetTable(bitableUrl, tableName, batchFieldListPayload) {
288
+ const bitablePath = await this.getBitablePath(bitableUrl);
289
+ const appTableList = await this.getAppTableList(bitablePath);
290
+ let tableId = '';
291
+ const tableItem = appTableList.find((appTableListItem) => appTableListItem.name === tableName);
292
+ if (tableItem) {
293
+ tableId = tableItem.table_id;
294
+ }
295
+ else {
296
+ tableId = await this.getAppTableCreate(tableName, bitablePath.app_token, batchFieldListPayload);
297
+ }
298
+ return Object.assign(Object.assign({}, bitablePath), { table_id: tableId });
299
+ }
300
+ async getAppTableCreate(tableName, appToken, batchFieldListPayload) {
301
+ const { larkClient } = this.feishuBaseInstance;
302
+ const res = await larkClient.bitable.appTable.create({
303
+ data: {
304
+ table: {
305
+ name: tableName,
306
+ fields: batchFieldListPayload,
307
+ },
308
+ },
309
+ path: {
310
+ app_token: appToken,
311
+ },
312
+ });
313
+ if (res.code === feishu_code_1.CODE_SUCCESS) {
314
+ return res.data.table_id;
315
+ }
316
+ throw new Error(`${BitableFieldBase.name}.getAppTableCreate 生成失败。 tableName: ${tableName} appToken: ${appToken}`);
317
+ }
318
+ }
319
+ exports.BitableFieldBase = BitableFieldBase;
320
+ //# sourceMappingURL=bitable-base-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bitable-base-field.js","sourceRoot":"","sources":["../src/bitable-base-field.ts"],"names":[],"mappings":"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"}