apaas-oapi-client 0.1.11 → 0.1.13
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/dist/index.d.ts +5 -0
- package/dist/index.js +30 -6
- package/package.json +1 -1
- package/src/index.ts +38 -6
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -148,12 +148,13 @@ class Client {
|
|
|
148
148
|
let nextPageToken = '';
|
|
149
149
|
let total = 0;
|
|
150
150
|
let page = 0;
|
|
151
|
+
const url = `/v1/data/namespaces/${this.namespace}/objects/${object_name}/records_query`;
|
|
151
152
|
do {
|
|
152
153
|
await functionLimiter(async () => {
|
|
153
154
|
const mergedData = { ...data, page_token: nextPageToken || '' };
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
155
|
+
await this.ensureTokenValid();
|
|
156
|
+
const res = await this.axiosInstance.post(url, mergedData, {
|
|
157
|
+
headers: { Authorization: `${this.accessToken}` }
|
|
157
158
|
});
|
|
158
159
|
page += 1;
|
|
159
160
|
if (res.data && Array.isArray(res.data.items)) {
|
|
@@ -161,12 +162,15 @@ class Client {
|
|
|
161
162
|
}
|
|
162
163
|
if (page === 1) {
|
|
163
164
|
total = res.data.total || 0;
|
|
164
|
-
this.log(LoggerLevel.info,
|
|
165
|
+
this.log(LoggerLevel.info, `[批量查询记录] 🔍 object_name=${object_name}, 接口返回 total: ${total}`);
|
|
165
166
|
}
|
|
166
|
-
|
|
167
|
-
|
|
167
|
+
const totalPages = Math.ceil(total / (data.page_size || 100));
|
|
168
|
+
const padLength = String(totalPages).length;
|
|
169
|
+
this.log(LoggerLevel.info, `[批量查询记录] 🔍 [${String(page).padStart(padLength, '0')}/${totalPages}] 接口调用完成`);
|
|
170
|
+
this.log(LoggerLevel.debug, `[批量查询记录] 🔍 第 ${page} 页查询, nextPageToken: ${res.data.next_page_token || ''}`);
|
|
168
171
|
this.log(LoggerLevel.debug, `[批量查询记录] 🔍 第 ${page} 页查询完成, items.length: ${res.data.items.length}`);
|
|
169
172
|
this.log(LoggerLevel.trace, `[批量查询记录] 🔍 第 ${page} 页查询结果: ${JSON.stringify(res.data.items)}`);
|
|
173
|
+
nextPageToken = res.data.next_page_token;
|
|
170
174
|
return res;
|
|
171
175
|
});
|
|
172
176
|
} while (nextPageToken);
|
|
@@ -574,6 +578,26 @@ class Client {
|
|
|
574
578
|
get token() {
|
|
575
579
|
return this.accessToken;
|
|
576
580
|
}
|
|
581
|
+
/**
|
|
582
|
+
* 获取当前 token 剩余过期时间(单位:秒)
|
|
583
|
+
* @returns 剩余秒数,若无 token 则返回 null
|
|
584
|
+
*/
|
|
585
|
+
get tokenExpireTime() {
|
|
586
|
+
if (!this.accessToken || !this.expireTime) {
|
|
587
|
+
this.log(LoggerLevel.warn, '[client] no valid token');
|
|
588
|
+
return null;
|
|
589
|
+
}
|
|
590
|
+
const now = dayjs().valueOf();
|
|
591
|
+
const remainMs = this.expireTime - now;
|
|
592
|
+
if (remainMs <= 0) {
|
|
593
|
+
this.log(LoggerLevel.warn, '[client] token expired');
|
|
594
|
+
return 0;
|
|
595
|
+
}
|
|
596
|
+
const remainSeconds = Math.floor(remainMs / 1000);
|
|
597
|
+
this.log(LoggerLevel.debug, `[client] token expire time: ${remainSeconds} seconds remaining`);
|
|
598
|
+
this.log(LoggerLevel.trace, `[client] token expire time: ${remainSeconds} seconds remaining, expireTime=${this.expireTime}, now=${now}`);
|
|
599
|
+
return remainSeconds;
|
|
600
|
+
}
|
|
577
601
|
/**
|
|
578
602
|
* 获取当前 namespace
|
|
579
603
|
*/
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -139,6 +139,30 @@ class Client {
|
|
|
139
139
|
return this.accessToken;
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
+
/**
|
|
143
|
+
* 获取当前 token 剩余过期时间(单位:秒)
|
|
144
|
+
* @returns 剩余秒数,若无 token 则返回 null
|
|
145
|
+
*/
|
|
146
|
+
get tokenExpireTime() {
|
|
147
|
+
if (!this.accessToken || !this.expireTime) {
|
|
148
|
+
this.log(LoggerLevel.warn, '[client] no valid token');
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const now = dayjs().valueOf();
|
|
153
|
+
const remainMs = this.expireTime - now;
|
|
154
|
+
|
|
155
|
+
if (remainMs <= 0) {
|
|
156
|
+
this.log(LoggerLevel.warn, '[client] token expired');
|
|
157
|
+
return 0;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const remainSeconds = Math.floor(remainMs / 1000);
|
|
161
|
+
this.log(LoggerLevel.debug, `[client] token expire time: ${remainSeconds} seconds remaining`);
|
|
162
|
+
this.log(LoggerLevel.trace, `[client] token expire time: ${remainSeconds} seconds remaining, expireTime=${this.expireTime}, now=${now}`);
|
|
163
|
+
return remainSeconds;
|
|
164
|
+
}
|
|
165
|
+
|
|
142
166
|
/**
|
|
143
167
|
* 获取当前 namespace
|
|
144
168
|
*/
|
|
@@ -260,13 +284,16 @@ class Client {
|
|
|
260
284
|
let total = 0;
|
|
261
285
|
let page = 0;
|
|
262
286
|
|
|
287
|
+
const url = `/v1/data/namespaces/${this.namespace}/objects/${object_name}/records_query`;
|
|
288
|
+
|
|
263
289
|
do {
|
|
264
290
|
const pageRes = await functionLimiter(async () => {
|
|
265
291
|
const mergedData = { ...data, page_token: nextPageToken || '' };
|
|
266
292
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
293
|
+
await this.ensureTokenValid();
|
|
294
|
+
|
|
295
|
+
const res = await this.axiosInstance.post(url, mergedData, {
|
|
296
|
+
headers: { Authorization: `${this.accessToken}` }
|
|
270
297
|
});
|
|
271
298
|
|
|
272
299
|
page += 1;
|
|
@@ -277,14 +304,19 @@ class Client {
|
|
|
277
304
|
|
|
278
305
|
if (page === 1) {
|
|
279
306
|
total = res.data.total || 0;
|
|
280
|
-
this.log(LoggerLevel.info,
|
|
307
|
+
this.log(LoggerLevel.info, `[批量查询记录] 🔍 object_name=${object_name}, 接口返回 total: ${total}`);
|
|
281
308
|
}
|
|
282
309
|
|
|
283
|
-
|
|
310
|
+
const totalPages = Math.ceil(total / (data.page_size || 100));
|
|
311
|
+
const padLength = String(totalPages).length;
|
|
284
312
|
|
|
285
|
-
this.log(LoggerLevel.
|
|
313
|
+
this.log(LoggerLevel.info, `[批量查询记录] 🔍 [${String(page).padStart(padLength, '0')}/${totalPages}] 接口调用完成`);
|
|
314
|
+
this.log(LoggerLevel.debug, `[批量查询记录] 🔍 第 ${page} 页查询, nextPageToken: ${res.data.next_page_token || ''}`);
|
|
286
315
|
this.log(LoggerLevel.debug, `[批量查询记录] 🔍 第 ${page} 页查询完成, items.length: ${res.data.items.length}`);
|
|
287
316
|
this.log(LoggerLevel.trace, `[批量查询记录] 🔍 第 ${page} 页查询结果: ${JSON.stringify(res.data.items)}`);
|
|
317
|
+
|
|
318
|
+
nextPageToken = res.data.next_page_token;
|
|
319
|
+
|
|
288
320
|
return res;
|
|
289
321
|
});
|
|
290
322
|
} while (nextPageToken);
|