@byted-apaas/server-sdk-node 1.1.20 → 1.1.21-beta.1

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.
@@ -5,6 +5,8 @@ import { IDBGetter } from './db/db';
5
5
  import { Context as CommonContext } from '@byted-apaas/server-common-node';
6
6
  import { IMetaData } from './metadata/metadata';
7
7
  import { _IIntegration } from './integration/IIntegration';
8
+ import { TaskCenter } from "./task/taskCenter";
9
+ import { PushCenter } from "./push/pushCenter";
8
10
  export declare class Context<T, mt, cf, gv> extends CommonContext implements IContext<T, mt, cf, gv> {
9
11
  /**
10
12
  * 操作数据库中的记录数据
@@ -33,6 +35,11 @@ export declare class Context<T, mt, cf, gv> extends CommonContext implements ICo
33
35
  * 向消息中心推送及更新消息
34
36
  */
35
37
  msg: Message;
38
+ taskCenter: TaskCenter;
39
+ /**
40
+ * 推送中心
41
+ */
42
+ pushCenter: PushCenter;
36
43
  /**
37
44
  * 根据 apiName 获取对应的全局变量
38
45
  * @param apiName 全局变量的 API Name
@@ -0,0 +1,55 @@
1
+ export interface _ReceiverInfo {
2
+ receiver_id: string;
3
+ receiver_id_type?: string;
4
+ tags?: Map<string, string>;
5
+ variables?: _Variable[];
6
+ extra?: Map<string, string>;
7
+ }
8
+ export interface _Variable {
9
+ key: string;
10
+ value?: string;
11
+ }
12
+ /**
13
+ * 推送中心类
14
+ */
15
+ export declare class PushCenter {
16
+ /**
17
+ * 批量发布消息
18
+ * @param receiverInfos 接收者信息
19
+ * @param channelIDs 管道ID
20
+ * @param template 模版
21
+ * @param msgType 消息类型
22
+ * @param batchNo 批量编号
23
+ * @param senderID 发送者ID
24
+ * @param senderIDType 发送者ID类型
25
+ * @param subBatchNo 批量子编号
26
+ * @param tags 标签信息
27
+ * @param extra 扩展信息
28
+ */
29
+ sendMessageBatch(receiverInfos: _ReceiverInfo[], channelIDs: string[], template: string, msgType: string, batchNo: string, senderID: string, senderIDType: string, subBatchNo?: string, tags?: Map<string, string>, extra?: Map<string, string>): Promise<any>;
30
+ /**
31
+ * 批量获取消息状态
32
+ * @param batchNo 批量编号
33
+ * @param subBatchNo 子批次编号
34
+ * @param tags 标签列表
35
+ */
36
+ getMessageBatchStatus(batchNo: string, subBatchNo: string, tags?: Map<string, string>): Promise<any>;
37
+ /**
38
+ * 获取消息状态
39
+ * @param batchNo 批量编号
40
+ * @param subBatchNo 子批量编号
41
+ * @param receiverIDs 接收者ID列表
42
+ * @param tags 标签列表
43
+ * @param withFeedback 是否获取已读反馈
44
+ * @param offset 是否获取已读反馈
45
+ * @param limit 是否获取已读反馈
46
+ */
47
+ getMessageStatus(batchNo: string, subBatchNo: string, receiverIDs?: string[], tags?: Map<string, string>, withFeedback?: boolean, offset?: number, limit?: number): Promise<any>;
48
+ /**
49
+ * 撤回消息
50
+ * @param batchNo 批量编号
51
+ * @param subBatchNo 子批量编号
52
+ * @param receiverIDs 接收者ID列表
53
+ */
54
+ recallMessageBatch(batchNo: string, subBatchNo: string, receiverIDs?: string[]): Promise<any>;
55
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ // Copyright 2022 ByteDance Ltd. and/or its affiliates
3
+ // SPDX-License-Identifier: MIT
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.PushCenter = void 0;
6
+ const Request = require("../../request/interface");
7
+ /**
8
+ * 推送中心类
9
+ */
10
+ class PushCenter {
11
+ /**
12
+ * 批量发布消息
13
+ * @param receiverInfos 接收者信息
14
+ * @param channelIDs 管道ID
15
+ * @param template 模版
16
+ * @param msgType 消息类型
17
+ * @param batchNo 批量编号
18
+ * @param senderID 发送者ID
19
+ * @param senderIDType 发送者ID类型
20
+ * @param subBatchNo 批量子编号
21
+ * @param tags 标签信息
22
+ * @param extra 扩展信息
23
+ */
24
+ async sendMessageBatch(receiverInfos, channelIDs, template, msgType, batchNo, senderID, senderIDType, subBatchNo, tags, extra) {
25
+ return await Request.GetInstance().sendMessageBatch(receiverInfos, channelIDs, template, msgType, batchNo, senderID, senderIDType, subBatchNo, tags, extra);
26
+ }
27
+ ;
28
+ /**
29
+ * 批量获取消息状态
30
+ * @param batchNo 批量编号
31
+ * @param subBatchNo 子批次编号
32
+ * @param tags 标签列表
33
+ */
34
+ async getMessageBatchStatus(batchNo, subBatchNo, tags) {
35
+ return await Request.GetInstance().getMessageBatchStatus(batchNo, subBatchNo, tags);
36
+ }
37
+ ;
38
+ /**
39
+ * 获取消息状态
40
+ * @param batchNo 批量编号
41
+ * @param subBatchNo 子批量编号
42
+ * @param receiverIDs 接收者ID列表
43
+ * @param tags 标签列表
44
+ * @param withFeedback 是否获取已读反馈
45
+ * @param offset 是否获取已读反馈
46
+ * @param limit 是否获取已读反馈
47
+ */
48
+ async getMessageStatus(batchNo, subBatchNo, receiverIDs, tags, withFeedback, offset, limit) {
49
+ return await Request.GetInstance().getMessageStatus(batchNo, subBatchNo, receiverIDs, tags, withFeedback, offset, limit);
50
+ }
51
+ ;
52
+ /**
53
+ * 撤回消息
54
+ * @param batchNo 批量编号
55
+ * @param subBatchNo 子批量编号
56
+ * @param receiverIDs 接收者ID列表
57
+ */
58
+ async recallMessageBatch(batchNo, subBatchNo, receiverIDs) {
59
+ return await Request.GetInstance().recallMessageBatch(batchNo, subBatchNo, receiverIDs);
60
+ }
61
+ }
62
+ exports.PushCenter = PushCenter;
@@ -0,0 +1,32 @@
1
+ export interface _Task {
2
+ task_id?: string;
3
+ apaas_record?: _APaaSRecord;
4
+ }
5
+ export interface _APaaSRecord {
6
+ object_id?: string;
7
+ object_api_name?: string;
8
+ record_id?: string;
9
+ record_data?: string;
10
+ }
11
+ /**
12
+ * 任务中心类
13
+ */
14
+ export declare class TaskCenter {
15
+ /**
16
+ * 推送任务
17
+ * @param tasks 任务
18
+ * @param cacheDuration 缓存时长
19
+ */
20
+ syncTasks(tasks?: _Task[], cacheDuration?: number): Promise<any>;
21
+ /**
22
+ * 查询任务详情(从缓存)
23
+ * @param task 任务
24
+ */
25
+ getTaskDetail(task?: _Task): Promise<any>;
26
+ /**
27
+ * 刷新任务详情缓存
28
+ * @param tasks 任务
29
+ * @param cacheDuration 缓存时长
30
+ */
31
+ refreshTasksCache(tasks?: _Task[], cacheDuration?: number): Promise<any>;
32
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ // Copyright 2022 ByteDance Ltd. and/or its affiliates
3
+ // SPDX-License-Identifier: MIT
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.TaskCenter = void 0;
6
+ const Request = require("../../request/interface");
7
+ /**
8
+ * 任务中心类
9
+ */
10
+ class TaskCenter {
11
+ /**
12
+ * 推送任务
13
+ * @param tasks 任务
14
+ * @param cacheDuration 缓存时长
15
+ */
16
+ async syncTasks(tasks, cacheDuration) {
17
+ return await Request.GetInstance().syncTasks(tasks, cacheDuration);
18
+ }
19
+ ;
20
+ /**
21
+ * 查询任务详情(从缓存)
22
+ * @param task 任务
23
+ */
24
+ async getTaskDetail(task) {
25
+ return await Request.GetInstance().getTaskDetail(task);
26
+ }
27
+ ;
28
+ /**
29
+ * 刷新任务详情缓存
30
+ * @param tasks 任务
31
+ * @param cacheDuration 缓存时长
32
+ */
33
+ async refreshTasksCache(tasks, cacheDuration) {
34
+ return await Request.GetInstance().refreshTasksCache(tasks, cacheDuration);
35
+ }
36
+ ;
37
+ }
38
+ exports.TaskCenter = TaskCenter;
@@ -6,6 +6,8 @@ import { Flow } from './application/flow/flow';
6
6
  import { _Resources } from '../context/resources/impl/resources';
7
7
  import { Message } from '../context/msg/msg';
8
8
  import { _IIntegration } from '../context/integration/IIntegration';
9
+ import { TaskCenter } from "../context/task/taskCenter";
10
+ import { PushCenter } from "../context/push/pushCenter";
9
11
  declare global {
10
12
  export namespace application {
11
13
  /**
@@ -30,6 +32,14 @@ declare global {
30
32
  /**
31
33
  * metadataV3 接口
32
34
  */
35
+ /**
36
+ * 消息中心
37
+ */
38
+ let taskCenter: TaskCenter;
39
+ /**
40
+ * 推送中心
41
+ */
42
+ let pushCenter: PushCenter;
33
43
  /**
34
44
  * 常量
35
45
  */
package/hooks/hooks.js CHANGED
@@ -11,6 +11,8 @@ const common_1 = require("../request/common");
11
11
  const integration_1 = require("../context/integration/impl/integration");
12
12
  const metadataApi = require("../context/metadata/metadata");
13
13
  const flow_1 = require("../global/application/flow/flow");
14
+ const taskCenter_1 = require("../context/task/taskCenter");
15
+ const pushCenter_1 = require("../context/push/pushCenter");
14
16
  /**
15
17
  * 根据 key 获取对应的全局变量
16
18
  * @param key 全局变量的 key
@@ -57,6 +59,8 @@ function mountContext(context, logger, requireFunc) {
57
59
  context.function = api.getFunctionSync(context, logger);
58
60
  context.tasks = new tasks_1.Tasks(context.function);
59
61
  context.msg = new msg_1.Message();
62
+ context.taskCenter = new taskCenter_1.TaskCenter();
63
+ context.pushCenter = new pushCenter_1.PushCenter();
60
64
  context.resources = new resources_1._Resources();
61
65
  context.integration = new integration_1._Integration();
62
66
  context.getVar = getVar;
@@ -83,6 +87,8 @@ function mountApplication(context) {
83
87
  global.application.publicAPI.method = server_common_node_1.utils.getHttpMethod();
84
88
  global.application.publicAPI.headers = server_common_node_1.utils.getHttpHeaders();
85
89
  global.application.msg = new msg_1.Message();
90
+ global.application.taskCenter = new taskCenter_1.TaskCenter();
91
+ global.application.pushCenter = new pushCenter_1.PushCenter();
86
92
  global.application.resources = new resources_1._Resources();
87
93
  global.application.metadata = metadataApi.metadata(context);
88
94
  // (global as any).application.metadataV3 = metadataApi.metadataV3(context);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@byted-apaas/server-sdk-node",
3
- "version": "1.1.20",
3
+ "version": "1.1.21-beta.1",
4
4
  "description": "aPaaS Server SDK",
5
5
  "author": "zhouwexin <zhouwexin@bytedance.com>",
6
6
  "homepage": "",
@@ -13,7 +13,7 @@
13
13
  "clean": "tsc --build --clean && rm -rf **/*.js.map"
14
14
  },
15
15
  "dependencies": {
16
- "@byted-apaas/server-common-node": "^2.0.13",
16
+ "@byted-apaas/server-common-node": "^2.0.20-beta.2",
17
17
  "@jorgeferrero/stream-to-buffer": "^2.0.6",
18
18
  "dayjs": "^1.9.6",
19
19
  "form-data": "^3.0.0",
@@ -66,6 +66,13 @@ export interface IInnerAPIBaseRequest {
66
66
  downloadFileByToken: (fileToken: string, filePath?: string) => Promise<Buffer | undefined>;
67
67
  createMessage: (msg: any) => Promise<number>;
68
68
  updateMessage: (msgId: number, msg: any) => Promise<void>;
69
+ syncTasks: (tasks: any, cacheDuration: number) => Promise<number>;
70
+ getTaskDetail: (task: any) => Promise<any>;
71
+ refreshTasksCache: (tasks: any, cacheDuration: number) => Promise<number>;
72
+ sendMessageBatch: (receiverInfos: any, channelIDs: string[], template: string, msgType: string, batchNo: string, senderID: string, senderIDType: string, subBatchNo?: string, tags?: Map<string, string>, extra?: Map<string, string>) => Promise<string>;
73
+ getMessageBatchStatus: (batchNo: string, subBatchNo: string, tags?: Map<string, string>) => Promise<any>;
74
+ getMessageStatus: (batchNo: string, subBatchNo: string, receiverIDs?: string[], tags?: Map<string, string>, withFeedback?: boolean, offset?: number, limit?: number) => Promise<any>;
75
+ recallMessageBatch: (batchNo: string, subBatchNo: string, receiverIDs?: string[]) => Promise<any>;
69
76
  getFields: (objectApiName: string) => Promise<any>;
70
77
  getField: (objectApiName: string, fieldApiName: string) => Promise<any>;
71
78
  terminateWorkflowInstance: (workflowInstanceId: number, operator: number, reason: string) => Promise<void>;
@@ -33,6 +33,13 @@ export declare class RequestHttp implements IInnerAPIRequest {
33
33
  downloadFileByToken(fileToken: string, filePath?: string): Promise<Buffer | undefined>;
34
34
  createMessage(msg: any): Promise<number>;
35
35
  updateMessage(msgId: number, msg: any): Promise<void>;
36
+ syncTasks(tasks: any, cacheDuration: number): Promise<any>;
37
+ getTaskDetail(task: any): Promise<any>;
38
+ sendMessageBatch(receiverInfos: any, channelIDs: string[], template: string, msgType: string, batchNo: string, senderID: string, senderIDType: string, subBatchNo?: string, tags?: Map<string, string>, extra?: Map<string, string>): Promise<string>;
39
+ getMessageBatchStatus(batchNo: string, subBatchNo: string, tags?: Map<string, string>): Promise<any>;
40
+ getMessageStatus(batchNo: string, subBatchNo: string, receiverIDs?: string[], tags?: Map<string, string>, withFeedback?: boolean, offset?: number, limit?: number): Promise<any>;
41
+ recallMessageBatch(batchNo: string, subBatchNo: string, receiverIDs?: string[]): Promise<any>;
42
+ refreshTasksCache(cacheDuration: number, tasks: any): Promise<any>;
36
43
  getFields(objectApiName: string): any;
37
44
  getField(objectApiName: string, fieldApiName: string): any;
38
45
  terminateWorkflowInstance(workflowInstanceId: number, operator: number, reason: string): any;
@@ -1040,6 +1040,13 @@ class RequestHttp {
1040
1040
  this.openSDKUploadFile = openSDKUploadFile;
1041
1041
  this.openSDKUploadAvatar = openSDKUploadAvatar;
1042
1042
  this.openSDKDownloadAvatar = openSDKDownloadAvatar;
1043
+ this.syncTasks = syncTasks;
1044
+ this.getTaskDetail = getTaskDetail;
1045
+ this.refreshTasksCache = refreshTasksCache;
1046
+ this.sendMessageBatch = sendMessageBatch;
1047
+ this.getMessageBatchStatus = getMessageBatchStatus;
1048
+ this.getMessageStatus = getMessageStatus;
1049
+ this.recallMessageBatch = recallMessageBatch;
1043
1050
  }
1044
1051
  updateWorkflowVariables(ctx, instanceId, variables, variableTypes) {
1045
1052
  }
@@ -1098,6 +1105,27 @@ class RequestHttp {
1098
1105
  updateMessage(msgId, msg) {
1099
1106
  return null;
1100
1107
  }
1108
+ syncTasks(tasks, cacheDuration) {
1109
+ return null;
1110
+ }
1111
+ getTaskDetail(task) {
1112
+ return null;
1113
+ }
1114
+ sendMessageBatch(receiverInfos, channelIDs, template, msgType, batchNo, senderID, senderIDType, subBatchNo, tags, extra) {
1115
+ return null;
1116
+ }
1117
+ getMessageBatchStatus(batchNo, subBatchNo, tags) {
1118
+ return null;
1119
+ }
1120
+ getMessageStatus(batchNo, subBatchNo, receiverIDs, tags, withFeedback, offset, limit) {
1121
+ return null;
1122
+ }
1123
+ recallMessageBatch(batchNo, subBatchNo, receiverIDs) {
1124
+ return null;
1125
+ }
1126
+ refreshTasksCache(cacheDuration, tasks) {
1127
+ return null;
1128
+ }
1101
1129
  getFields(objectApiName) {
1102
1130
  }
1103
1131
  getField(objectApiName, fieldApiName) {
@@ -1526,3 +1554,80 @@ async function getDefaultIntegrationTenantAccessToken() {
1526
1554
  appId: res.appId,
1527
1555
  };
1528
1556
  }
1557
+ async function syncTasks(tasks, cacheDuration) {
1558
+ let options = commonHttp.getOptions(null, openapiHttpPath.taskCenterSyncTasks);
1559
+ let urlPath = options._reqPath.replace(replaceKeys.namespace, await (0, common_1.getNamespaceForOpenAndFaaSSDK)());
1560
+ options.json = {
1561
+ 'tasks': tasks,
1562
+ 'cache_duration': cacheDuration,
1563
+ };
1564
+ return await openapi.doRequest(null, urlPath, options);
1565
+ }
1566
+ async function getTaskDetail(task) {
1567
+ let options = commonHttp.getOptions(null, openapiHttpPath.taskCenterGetTaskDetail);
1568
+ let urlPath = options._reqPath.replace(replaceKeys.namespace, await (0, common_1.getNamespaceForOpenAndFaaSSDK)());
1569
+ options.json = {
1570
+ 'task': task,
1571
+ };
1572
+ return await openapi.doRequest(null, urlPath, options);
1573
+ }
1574
+ async function refreshTasksCache(tasks, cacheDuration) {
1575
+ let options = commonHttp.getOptions(null, openapiHttpPath.taskCenterRefreshTasksCache);
1576
+ let urlPath = options._reqPath.replace(replaceKeys.namespace, await (0, common_1.getNamespaceForOpenAndFaaSSDK)());
1577
+ options.json = {
1578
+ 'tasks': tasks,
1579
+ 'cache_duration': cacheDuration,
1580
+ };
1581
+ return await openapi.doRequest(null, urlPath, options);
1582
+ }
1583
+ async function sendMessageBatch(receiverInfos, channelIDs, template, msgType, batchNo, senderID, senderIDType, subBatchNo, tags, extra) {
1584
+ let options = commonHttp.getOptions(null, openapiHttpPath.pushCenterSendMessageBatch);
1585
+ let urlPath = options._reqPath.replace(replaceKeys.namespace, await (0, common_1.getNamespaceForOpenAndFaaSSDK)());
1586
+ options.json = {
1587
+ 'receiver_infos': receiverInfos,
1588
+ 'channel_ids': channelIDs,
1589
+ 'template': template,
1590
+ 'msg_type': msgType,
1591
+ 'batch_no': batchNo,
1592
+ 'sender_id': senderID,
1593
+ 'sender_id_type': senderIDType,
1594
+ 'sub_batch_no': subBatchNo,
1595
+ 'tags': tags,
1596
+ 'extra': extra,
1597
+ };
1598
+ return await openapi.doRequest(null, urlPath, options);
1599
+ }
1600
+ async function getMessageBatchStatus(batchNo, subBatchNo, tags) {
1601
+ let options = commonHttp.getOptions(null, openapiHttpPath.pushCenterGetMessageBatchStatus);
1602
+ let urlPath = options._reqPath.replace(replaceKeys.namespace, await (0, common_1.getNamespaceForOpenAndFaaSSDK)());
1603
+ options.json = {
1604
+ 'batch_no': batchNo,
1605
+ 'sub_batch_no': subBatchNo,
1606
+ 'tags': tags,
1607
+ };
1608
+ return await openapi.doRequest(null, urlPath, options);
1609
+ }
1610
+ async function getMessageStatus(batchNo, subBatchNo, receiverIDs, tags, withFeedback, offset, limit) {
1611
+ let options = commonHttp.getOptions(null, openapiHttpPath.pushCenterGetMessageStatus);
1612
+ let urlPath = options._reqPath.replace(replaceKeys.namespace, await (0, common_1.getNamespaceForOpenAndFaaSSDK)());
1613
+ options.json = {
1614
+ 'batch_no': batchNo,
1615
+ 'sub_batch_no': subBatchNo,
1616
+ 'receiver_ids': receiverIDs,
1617
+ 'tags': tags,
1618
+ 'with_feedback': withFeedback,
1619
+ 'offset': offset,
1620
+ 'limit': limit,
1621
+ };
1622
+ return await openapi.doRequest(null, urlPath, options);
1623
+ }
1624
+ async function recallMessageBatch(batchNo, subBatchNo, receiverIDs) {
1625
+ let options = commonHttp.getOptions(null, openapiHttpPath.pushCenterRecallMessageBatch);
1626
+ let urlPath = options._reqPath.replace(replaceKeys.namespace, await (0, common_1.getNamespaceForOpenAndFaaSSDK)());
1627
+ options.json = {
1628
+ 'batch_no': batchNo,
1629
+ 'sub_batch_no': subBatchNo,
1630
+ 'receiver_ids': receiverIDs
1631
+ };
1632
+ return await openapi.doRequest(null, urlPath, options);
1633
+ }