@be-link/ecommerce-client-backend-service-node-sdk 0.1.26 → 0.1.28

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.
@@ -18,6 +18,8 @@ declare class DataServiceClass extends BaseService implements DataService.BaseCo
18
18
  archive(request: DataService.Request.Archive): Promise<void>;
19
19
  /** 直播间数据定时归档 */
20
20
  liveStreamRoomDataArchive(): Promise<void>;
21
+ /** 同步任务 */
22
+ syncTask(request: DataService.Payload.Task): Promise<void>;
21
23
  }
22
24
  export declare const dataService: DataServiceClass;
23
25
  export default dataService;
@@ -57,6 +57,10 @@ let DataServiceClass = class DataServiceClass extends BaseService_1.default {
57
57
  liveStreamRoomDataArchive() {
58
58
  return (0, http_1.callApi)(this.getApiUrl(this.liveStreamRoomDataArchive), undefined);
59
59
  }
60
+ /** 同步任务 */
61
+ syncTask(request) {
62
+ return (0, http_1.callApi)(this.getApiUrl(this.syncTask), request);
63
+ }
60
64
  };
61
65
  __decorate([
62
66
  (0, tsoa_1.OperationId)('获取用户观看时长'),
@@ -107,6 +111,11 @@ __decorate([
107
111
  (0, tsoa_1.OperationId)('直播间数据定时归档'),
108
112
  (0, tsoa_1.Post)('livestream-room-data-archive')
109
113
  ], DataServiceClass.prototype, "liveStreamRoomDataArchive", null);
114
+ __decorate([
115
+ (0, tsoa_1.OperationId)('同步任务'),
116
+ (0, tsoa_1.Post)('sync-task'),
117
+ __param(0, (0, tsoa_1.Body)())
118
+ ], DataServiceClass.prototype, "syncTask", null);
110
119
  DataServiceClass = __decorate([
111
120
  (0, tsoa_1.Route)('data'),
112
121
  (0, tsoa_1.Tags)('Data')
@@ -13,6 +13,35 @@ export declare namespace DataService {
13
13
  /** 观看时长,单位秒 */
14
14
  watchDuration: number;
15
15
  }
16
+ /** 直播间任务 */
17
+ interface Task {
18
+ liveStreamRoomId: string;
19
+ tasks: WatchTaskInfo[];
20
+ }
21
+ interface WatchTaskInfo {
22
+ /** 任务ID */
23
+ id: string;
24
+ /** 任务名称 */
25
+ taskName: string;
26
+ /** 任务类型 */
27
+ taskType: string;
28
+ /** 任务状态 */
29
+ status: number;
30
+ /** 任务开始时间 */
31
+ taskStartTime: number;
32
+ /** 任务结束时间 */
33
+ taskEndTime: number;
34
+ /** 直播间ID */
35
+ liveStreamRoomId: string;
36
+ /** 观看时长(秒) */
37
+ watchTime: number;
38
+ /** 观看轮次(0=无限) */
39
+ watchTimeRound: number;
40
+ /** 创建时间 */
41
+ createdAt: number;
42
+ /** 更新时间 */
43
+ updatedAt: number;
44
+ }
16
45
  }
17
46
  namespace Request {
18
47
  /**
@@ -163,6 +192,7 @@ export declare namespace DataService {
163
192
  audienceExport(request: Request.AudienceList, req?: FastifyRequest): Promise<Response.AudienceExport>;
164
193
  archive(request: Request.Archive, req?: FastifyRequest): Promise<void>;
165
194
  liveStreamRoomDataArchive(req?: FastifyRequest): Promise<void>;
195
+ syncTask(request: Payload.Task): Promise<void>;
166
196
  }
167
197
  }
168
198
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@be-link/ecommerce-client-backend-service-node-sdk",
3
- "version": "0.1.26",
3
+ "version": "0.1.28",
4
4
  "description": "EcommerceClientBackendService Node.js SDK",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -17,7 +17,8 @@
17
17
  "axios-retry": "4.0.0",
18
18
  "fastify": "5.6.2",
19
19
  "uuid": "9.0.1",
20
- "tsoa": "^6.6.0"
20
+ "tsoa": "^6.6.0",
21
+ "safe-stable-stringify": "^2.4.3"
21
22
  },
22
23
  "scripts": {
23
24
  "build": "rm -rf ./dist && tsc && cp package.json README.md ./dist/ 2>/dev/null || true",
package/utils/http.js CHANGED
@@ -37,6 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.callApi = callApi;
40
+ const safe_stable_stringify_1 = __importDefault(require("safe-stable-stringify"));
40
41
  const axios_1 = __importDefault(require("axios"));
41
42
  const uuid_1 = require("uuid");
42
43
  const axios_retry_1 = __importDefault(require("axios-retry"));
@@ -51,13 +52,13 @@ const request_context_1 = require("@fastify/request-context");
51
52
  return retryCount * 500;
52
53
  },
53
54
  onRetry(retryCount, error, requestConfig) {
54
- console.info(`retryCount: ${retryCount}, onRetry: ${error.message}, requestHeader: ${JSON.stringify(requestConfig.headers)}`);
55
+ console.info(`retryCount: ${retryCount}, onRetry: ${error.message}, requestHeader: ${(0, safe_stable_stringify_1.default)(requestConfig.headers)}`);
55
56
  },
56
57
  });
57
58
  async function callApi(url, request) {
58
59
  const requestId = request_context_1.requestContext.get('requestId') || request_context_1.requestContext.get('traceMessageId') || (0, uuid_1.v4)();
59
60
  try {
60
- console.info(`准备发起ecommerce-client-backend-service请求[${requestId}]: ${url}, 参数: ${JSON.stringify(request)}`);
61
+ console.info(`准备发起ecommerce-client-backend-service请求[${requestId}]: ${url}, 参数: ${(0, safe_stable_stringify_1.default)(request)}`);
61
62
  const response = await axios_1.default.post(url, request || {}, {
62
63
  headers: { 'x-request-id': requestId },
63
64
  });
@@ -71,7 +72,7 @@ async function callApi(url, request) {
71
72
  const data = response.data;
72
73
  console.error(`ecommerce-client-backend-service 异常: ${axiosError.message},requestId: ${requestId}`);
73
74
  console.info('响应信息', data.message);
74
- console.error('异常堆栈', JSON.stringify(error.stack));
75
+ console.error('异常堆栈', (0, safe_stable_stringify_1.default)(error.stack));
75
76
  throw error;
76
77
  }
77
78
  // 调用dns模块解析url
@@ -82,16 +83,16 @@ async function callApi(url, request) {
82
83
  console.error(err.message);
83
84
  reject(err);
84
85
  }
85
- console.info(`lookup: ${JSON.stringify(lookupRes)}`);
86
+ console.info(`lookup: ${(0, safe_stable_stringify_1.default)(lookupRes)}`);
86
87
  resolve(address);
87
88
  });
88
89
  });
89
90
  try {
90
91
  const address = await dnsPromise;
91
- console.info(`address: ${JSON.stringify(address)}`);
92
+ console.info(`address: ${(0, safe_stable_stringify_1.default)(address)}`);
92
93
  }
93
94
  catch (error) {
94
- console.info(`error: ${JSON.stringify(error)}`);
95
+ console.info(`error: ${(0, safe_stable_stringify_1.default)(error)}`);
95
96
  }
96
97
  console.error(`ecommerce-client-backend-service 未知异常: ${axiosError.message}`, error.stack);
97
98
  throw error;