@mhubcloud/tms_core 2.0.0-beta.2 → 2.0.0-beta.4
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.js +10 -11
- package/package.json +1 -1
- package/releasePlan.md +1 -2
- package/src/defaultPublisher.ts +11 -7
- package/src/types/EventPublisher.ts +2 -1
- package/src/types/PlatformPublisher.ts +2 -1
- package/src/utils/utils.ts +5 -5
- package/tests/CJ.js +3 -3
package/dist/index.js
CHANGED
|
@@ -82,11 +82,6 @@ var EventPublisherBase = class {
|
|
|
82
82
|
};
|
|
83
83
|
function log(log3, level, message, properties) {
|
|
84
84
|
log3.warn(message);
|
|
85
|
-
aiClient?.trackTrace({
|
|
86
|
-
message,
|
|
87
|
-
severity: level,
|
|
88
|
-
properties
|
|
89
|
-
});
|
|
90
85
|
}
|
|
91
86
|
function logException(log3, exception) {
|
|
92
87
|
log3.warn(exception);
|
|
@@ -257,10 +252,14 @@ async function defaultPublisher(azureFunctionContext, eventHubMessages, source,
|
|
|
257
252
|
const results = await Promise.allSettled(processMessagePromises);
|
|
258
253
|
for (const result of results) {
|
|
259
254
|
if (result.status === "rejected") {
|
|
260
|
-
|
|
261
|
-
azureFunctionContext.log,
|
|
262
|
-
|
|
263
|
-
|
|
255
|
+
if (result.reason instanceof Error) {
|
|
256
|
+
logException(azureFunctionContext.log, result.reason);
|
|
257
|
+
} else {
|
|
258
|
+
logException(
|
|
259
|
+
azureFunctionContext.log,
|
|
260
|
+
new Error(result.reason)
|
|
261
|
+
);
|
|
262
|
+
}
|
|
264
263
|
}
|
|
265
264
|
}
|
|
266
265
|
}
|
|
@@ -269,7 +268,7 @@ async function processMessage(message, log3, platfromPublisher, trigger) {
|
|
|
269
268
|
source: platfromPublisher.source,
|
|
270
269
|
data: JSON.stringify(message)
|
|
271
270
|
};
|
|
272
|
-
const publishers = trigger(message);
|
|
271
|
+
const publishers = trigger(message, log3);
|
|
273
272
|
if (!publishers.length) {
|
|
274
273
|
log(
|
|
275
274
|
log3,
|
|
@@ -282,7 +281,7 @@ async function processMessage(message, log3, platfromPublisher, trigger) {
|
|
|
282
281
|
let publishedAny = false;
|
|
283
282
|
let failedToPublishAll = false;
|
|
284
283
|
for (const eventPublisher of publishers) {
|
|
285
|
-
const mapped = await eventPublisher.map(message);
|
|
284
|
+
const mapped = await eventPublisher.map(message, log3);
|
|
286
285
|
const res = await publishMessage(
|
|
287
286
|
log3,
|
|
288
287
|
mapped,
|
package/package.json
CHANGED
package/releasePlan.md
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
To test after release:
|
|
2
|
-
- Zkontrolovat event_time posílaný do FB, že chodí ve správném formátu a že obsahuje správný údaj.
|
|
3
|
-
- Když použiju utils.log tak to do appinsights zaloguje dvakrát? Máme totiž podezření, že ano.
|
|
2
|
+
- Zkontrolovat event_time posílaný do FB, že chodí ve správném formátu a že obsahuje správný údaj.
|
package/src/defaultPublisher.ts
CHANGED
|
@@ -37,10 +37,14 @@ export async function defaultPublisher(
|
|
|
37
37
|
// ? musi nahoru probublat, ze aspon neco selhalo a to je to, co bude triggerovat nasledujici error. Error pro konkretniho publishera musi byt primo v processMessage v loopu. Hodnotu pro typ publishera vezmeme z platformBublisher.SOURCE
|
|
38
38
|
for (const result of results) {
|
|
39
39
|
if (result.status === 'rejected') {
|
|
40
|
-
|
|
41
|
-
azureFunctionContext.log,
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
if (result.reason instanceof Error) {
|
|
41
|
+
utils.logException(azureFunctionContext.log, result.reason);
|
|
42
|
+
} else {
|
|
43
|
+
utils.logException(
|
|
44
|
+
azureFunctionContext.log,
|
|
45
|
+
new Error(result.reason as Error['message']),
|
|
46
|
+
);
|
|
47
|
+
}
|
|
44
48
|
}
|
|
45
49
|
}
|
|
46
50
|
}
|
|
@@ -58,14 +62,14 @@ async function processMessage(
|
|
|
58
62
|
message: EventHubMessage,
|
|
59
63
|
log: Logger,
|
|
60
64
|
platfromPublisher: PlatformPublisher,
|
|
61
|
-
trigger: (a: object) => EventPublisher[],
|
|
65
|
+
trigger: (a: object, log: Logger) => EventPublisher[],
|
|
62
66
|
) {
|
|
63
67
|
// TODO Je potreba otestovat, ze se to nerozbije, kdyz jsme prestali prepisovat enqueuedAt na Date.now()
|
|
64
68
|
const logProperties: Telemetry['properties'] = {
|
|
65
69
|
source: platfromPublisher.source,
|
|
66
70
|
data: JSON.stringify(message),
|
|
67
71
|
};
|
|
68
|
-
const publishers = trigger(message);
|
|
72
|
+
const publishers = trigger(message, log);
|
|
69
73
|
if (!publishers.length) {
|
|
70
74
|
utils.log(
|
|
71
75
|
log,
|
|
@@ -78,7 +82,7 @@ async function processMessage(
|
|
|
78
82
|
let publishedAny = false;
|
|
79
83
|
let failedToPublishAll = false;
|
|
80
84
|
for (const eventPublisher of publishers) {
|
|
81
|
-
const mapped = await eventPublisher.map(message);
|
|
85
|
+
const mapped = await eventPublisher.map(message, log);
|
|
82
86
|
|
|
83
87
|
const res = await publishMessage(
|
|
84
88
|
log,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Logger } from '@azure/functions';
|
|
1
2
|
import { EventHubMessage } from './EventHubMessage';
|
|
2
3
|
|
|
3
4
|
export interface EventPublisherBaseClass {
|
|
@@ -5,5 +6,5 @@ export interface EventPublisherBaseClass {
|
|
|
5
6
|
}
|
|
6
7
|
|
|
7
8
|
export interface EventPublisher extends EventPublisherBaseClass {
|
|
8
|
-
map: (data: EventHubMessage) => Promise<Record<string, unknown>>;
|
|
9
|
+
map: (data: EventHubMessage, log: Logger) => Promise<Record<string, unknown>>;
|
|
9
10
|
}
|
|
@@ -3,13 +3,14 @@ import { BodyInit } from 'node-fetch';
|
|
|
3
3
|
import { TypeSafeObject } from './UtilTypes';
|
|
4
4
|
|
|
5
5
|
export interface PlatformPublisher {
|
|
6
|
-
source: string;
|
|
6
|
+
source: string; // ! ADDED
|
|
7
7
|
publish: (
|
|
8
8
|
log: Logger,
|
|
9
9
|
config: TypeSafeObject,
|
|
10
10
|
data: TypeSafeObject | unknown[],
|
|
11
11
|
event: string,
|
|
12
12
|
) => Promise<void>;
|
|
13
|
+
// ! REMOVED parse and validate
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
export interface PlatformRequestOptions {
|
package/src/utils/utils.ts
CHANGED
|
@@ -63,11 +63,11 @@ export function log(
|
|
|
63
63
|
properties?: Telemetry['properties'],
|
|
64
64
|
): void {
|
|
65
65
|
log.warn(message);
|
|
66
|
-
aiClient?.trackTrace({
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
});
|
|
66
|
+
// aiClient?.trackTrace({
|
|
67
|
+
// message,
|
|
68
|
+
// severity: level,
|
|
69
|
+
// properties,
|
|
70
|
+
// });
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
/**
|
package/tests/CJ.js
CHANGED
|
@@ -118,12 +118,12 @@ async function test(eventHubMessages) {
|
|
|
118
118
|
);
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
function trigger(data) {
|
|
121
|
+
function trigger(data, log) {
|
|
122
122
|
const publishers = [];
|
|
123
123
|
if (data.event.code === 'purchase') {
|
|
124
124
|
let publisher = CJPurchasePublisher;
|
|
125
125
|
|
|
126
|
-
publisher.register(publishers, { cid: 1, type: 1111111 });
|
|
126
|
+
publisher.register(publishers, { cid: '1', type: '1111111' });
|
|
127
127
|
}
|
|
128
128
|
return publishers;
|
|
129
129
|
}
|
|
@@ -134,7 +134,7 @@ class CJPurchasePublisher extends utils.EventPublisherBase {
|
|
|
134
134
|
* @param {Object} data `purchase` event data
|
|
135
135
|
* @returns {Object} Data mapped from incomming Event Hub message to platform payload
|
|
136
136
|
*/
|
|
137
|
-
map(data) {
|
|
137
|
+
map(data, log) {
|
|
138
138
|
const ret = {
|
|
139
139
|
cjevent: utils.extractAdCode(data, 'cjaffiliate', 'cjevent')?.code,
|
|
140
140
|
cust_status: data.user?.ts?.indexOf('customer') >= 0 ? 'return' : 'new',
|