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) => {
const normalizedPayload = normalizeErrorPayload(payload, res.statusCode);
if (
isPlainObject(normalizedPayload) &&
normalizedPayload.request_id === undefined
) {
return originalJson({ ...normalizedPayload, request_id: requestId });
if (isPlainObject(normalizedPayload)) {
if (normalizedPayload.request_id === undefined) {
return originalJson({ ...normalizedPayload, request_id: requestId });
}
return originalJson(normalizedPayload);
}
return originalJson(normalizedPayload);
return originalJson({
data: normalizedPayload,
request_id: requestId,
});
};
next();

View File

@ -17,7 +17,21 @@ api.interceptors.request.use((config => {
}));
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 => {
const payload = error.response?.data;
const normalizedMessage = payload?.error?.message || payload?.message;