feat: include request id in all json responses

This commit is contained in:
Nico 2026-02-16 01:23:42 -08:00
parent a5f99ba475
commit fec9f1ab25
2 changed files with 24 additions and 7 deletions

View File

@ -28,14 +28,17 @@ function requestIdMiddleware(req, res, next) {
res.json = (payload) => { res.json = (payload) => {
const normalizedPayload = normalizeErrorPayload(payload, res.statusCode); const normalizedPayload = normalizeErrorPayload(payload, res.statusCode);
if ( if (isPlainObject(normalizedPayload)) {
isPlainObject(normalizedPayload) && if (normalizedPayload.request_id === undefined) {
normalizedPayload.request_id === undefined
) {
return originalJson({ ...normalizedPayload, request_id: requestId }); return originalJson({ ...normalizedPayload, request_id: requestId });
} }
return originalJson(normalizedPayload); return originalJson(normalizedPayload);
}
return originalJson({
data: normalizedPayload,
request_id: requestId,
});
}; };
next(); next();

View File

@ -17,7 +17,21 @@ api.interceptors.request.use((config => {
})); }));
api.interceptors.response.use( api.interceptors.response.use(
response => response, response => {
const payload = response.data;
if (
payload &&
typeof payload === "object" &&
!Array.isArray(payload) &&
Object.keys(payload).length === 2 &&
Object.prototype.hasOwnProperty.call(payload, "data") &&
Object.prototype.hasOwnProperty.call(payload, "request_id")
) {
response.request_id = payload.request_id;
response.data = payload.data;
}
return response;
},
error => { error => {
const payload = error.response?.data; const payload = error.response?.data;
const normalizedMessage = payload?.error?.message || payload?.message; const normalizedMessage = payload?.error?.message || payload?.message;