@render-foundation/utils 0.0.93 → 0.0.95
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/lib/cjs/errorReporter.js +64 -15
- package/lib/cjs/errorReporter.js.map +1 -1
- package/lib/esm/src/errorReporter.js +68 -19
- package/lib/esm/src/errorReporter.js.map +1 -1
- package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/src/errorReporter.d.ts +1 -0
- package/lib/types/src/errorReporter.d.ts.map +1 -1
- package/package.json +1 -1
package/lib/cjs/errorReporter.js
CHANGED
|
@@ -39,6 +39,23 @@ const errorReporter = (pdApiKey, slackToken, channel, log = logger_1.consoleLogg
|
|
|
39
39
|
}
|
|
40
40
|
}));
|
|
41
41
|
});
|
|
42
|
+
const getIncidentId = (key) => __awaiter(void 0, void 0, void 0, function* () {
|
|
43
|
+
const res = yield pd.get('/incidents', {
|
|
44
|
+
headers: {
|
|
45
|
+
From: 'alex@renderfoundation.com',
|
|
46
|
+
},
|
|
47
|
+
queryParameters: { incident_key: key },
|
|
48
|
+
});
|
|
49
|
+
if (res.data.incidents.length == 0) {
|
|
50
|
+
log.error(`no incident with key ${key} found`);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (res.data.incidents.length > 1) {
|
|
54
|
+
log.error(`multiple incidents with key ${key} found: ${JSON.stringify(res.data.incidents)}`);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
return res.data.incidents[0].id;
|
|
58
|
+
});
|
|
42
59
|
return {
|
|
43
60
|
report(f) {
|
|
44
61
|
var _a, _b;
|
|
@@ -48,21 +65,53 @@ const errorReporter = (pdApiKey, slackToken, channel, log = logger_1.consoleLogg
|
|
|
48
65
|
yield sendSlackMessage(f.msg, channel);
|
|
49
66
|
}
|
|
50
67
|
else {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
}
|
|
68
|
+
let res;
|
|
69
|
+
if (f.id && f.status == 'resolve') {
|
|
70
|
+
const id = yield getIncidentId(f.id);
|
|
71
|
+
res = yield pd.put(`/incidents/${id}`, {
|
|
72
|
+
headers: {
|
|
73
|
+
From: 'alex@renderfoundation.com',
|
|
74
|
+
},
|
|
75
|
+
data: {
|
|
76
|
+
incident: {
|
|
77
|
+
type: 'incident',
|
|
78
|
+
status: 'resolved',
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
else if (f.id && f.status == 'update') {
|
|
84
|
+
const id = yield getIncidentId(f.id);
|
|
85
|
+
res = yield pd.put(`/incidents/${id}`, {
|
|
86
|
+
headers: {
|
|
87
|
+
From: 'alex@renderfoundation.com',
|
|
88
|
+
},
|
|
89
|
+
data: {
|
|
90
|
+
incident: {
|
|
91
|
+
type: 'incident',
|
|
92
|
+
title: f.msg,
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
const opt = f.id ? { incident_key: f.id } : {};
|
|
99
|
+
log.debug(`creating incident ${f.id}`);
|
|
100
|
+
res = yield pd.post('/incidents', {
|
|
101
|
+
headers: {
|
|
102
|
+
From: 'alex@renderfoundation.com',
|
|
103
|
+
},
|
|
104
|
+
data: {
|
|
105
|
+
incident: Object.assign(Object.assign({}, opt), { type: 'incident', title: (_a = f.title) !== null && _a !== void 0 ? _a : ``, service: {
|
|
106
|
+
id: 'PZPJ8EI',
|
|
107
|
+
type: 'service_reference',
|
|
108
|
+
}, urgency: 'high', body: {
|
|
109
|
+
type: 'incident_body',
|
|
110
|
+
details: (_b = f.msg) !== null && _b !== void 0 ? _b : ``,
|
|
111
|
+
} }),
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
}
|
|
66
115
|
log.debug(`pd resp ${JSON.stringify(res.data)}`);
|
|
67
116
|
if (res.data.error) {
|
|
68
117
|
log.error(`pd err ${JSON.stringify(res.data.error)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorReporter.js","sourceRoot":"","sources":["../../src/errorReporter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"errorReporter.js","sourceRoot":"","sources":["../../src/errorReporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,23 @@ export const errorReporter = (pdApiKey, slackToken, channel, log = consoleLogger
|
|
|
27
27
|
}
|
|
28
28
|
});
|
|
29
29
|
};
|
|
30
|
+
const getIncidentId = async (key) => {
|
|
31
|
+
const res = await pd.get('/incidents', {
|
|
32
|
+
headers: {
|
|
33
|
+
From: 'alex@renderfoundation.com',
|
|
34
|
+
},
|
|
35
|
+
queryParameters: { incident_key: key },
|
|
36
|
+
});
|
|
37
|
+
if (res.data.incidents.length == 0) {
|
|
38
|
+
log.error(`no incident with key ${key} found`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (res.data.incidents.length > 1) {
|
|
42
|
+
log.error(`multiple incidents with key ${key} found: ${JSON.stringify(res.data.incidents)}`);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
return res.data.incidents[0].id;
|
|
46
|
+
};
|
|
30
47
|
return {
|
|
31
48
|
async report(f) {
|
|
32
49
|
for (const t of f.targets) {
|
|
@@ -34,28 +51,60 @@ export const errorReporter = (pdApiKey, slackToken, channel, log = consoleLogger
|
|
|
34
51
|
await sendSlackMessage(f.msg, channel);
|
|
35
52
|
}
|
|
36
53
|
else {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
id: 'PZPJ8EI',
|
|
49
|
-
type: 'service_reference',
|
|
54
|
+
let res;
|
|
55
|
+
if (f.id && f.status == 'resolve') {
|
|
56
|
+
const id = await getIncidentId(f.id);
|
|
57
|
+
res = await pd.put(`/incidents/${id}`, {
|
|
58
|
+
headers: {
|
|
59
|
+
From: 'alex@renderfoundation.com',
|
|
60
|
+
},
|
|
61
|
+
data: {
|
|
62
|
+
incident: {
|
|
63
|
+
type: 'incident',
|
|
64
|
+
status: 'resolved',
|
|
50
65
|
},
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
else if (f.id && f.status == 'update') {
|
|
70
|
+
const id = await getIncidentId(f.id);
|
|
71
|
+
res = await pd.put(`/incidents/${id}`, {
|
|
72
|
+
headers: {
|
|
73
|
+
From: 'alex@renderfoundation.com',
|
|
74
|
+
},
|
|
75
|
+
data: {
|
|
76
|
+
incident: {
|
|
77
|
+
type: 'incident',
|
|
78
|
+
title: f.msg,
|
|
55
79
|
},
|
|
56
80
|
},
|
|
57
|
-
}
|
|
58
|
-
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
const opt = f.id ? { incident_key: f.id } : {};
|
|
85
|
+
log.debug(`creating incident ${f.id}`);
|
|
86
|
+
res = await pd.post('/incidents', {
|
|
87
|
+
headers: {
|
|
88
|
+
From: 'alex@renderfoundation.com',
|
|
89
|
+
},
|
|
90
|
+
data: {
|
|
91
|
+
incident: {
|
|
92
|
+
...opt,
|
|
93
|
+
type: 'incident',
|
|
94
|
+
title: f.title ?? ``,
|
|
95
|
+
service: {
|
|
96
|
+
id: 'PZPJ8EI',
|
|
97
|
+
type: 'service_reference',
|
|
98
|
+
},
|
|
99
|
+
urgency: 'high',
|
|
100
|
+
body: {
|
|
101
|
+
type: 'incident_body',
|
|
102
|
+
details: f.msg ?? ``,
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
}
|
|
59
108
|
log.debug(`pd resp ${JSON.stringify(res.data)}`);
|
|
60
109
|
if (res.data.error) {
|
|
61
110
|
log.error(`pd err ${JSON.stringify(res.data.error)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorReporter.js","sourceRoot":"","sources":["../../../src/errorReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"errorReporter.js","sourceRoot":"","sources":["../../../src/errorReporter.ts"],"names":[],"mappings":"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"}
|