Added Debug Log and info pickup older 6month + hygiene crt
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
const axios = require('axios');
|
||||
const requestLogStore = require('./requestLogStore');
|
||||
|
||||
const BASE_URL = 'https://foodsharing.de';
|
||||
|
||||
@@ -11,6 +12,49 @@ const client = axios.create({
|
||||
}
|
||||
});
|
||||
|
||||
client.interceptors.request.use((config) => {
|
||||
config.metadata = { startedAt: Date.now() };
|
||||
return config;
|
||||
});
|
||||
|
||||
client.interceptors.response.use(
|
||||
(response) => {
|
||||
const startedAt = response?.config?.metadata?.startedAt || Date.now();
|
||||
try {
|
||||
requestLogStore.add({
|
||||
direction: 'outgoing',
|
||||
target: 'foodsharing.de',
|
||||
method: (response.config?.method || 'GET').toUpperCase(),
|
||||
path: response.config?.url || '',
|
||||
status: response.status,
|
||||
durationMs: Date.now() - startedAt,
|
||||
responseBody: response.data
|
||||
});
|
||||
} catch (error) {
|
||||
console.warn('[REQUEST-LOG] Outgoing-Log fehlgeschlagen:', error.message);
|
||||
}
|
||||
return response;
|
||||
},
|
||||
(error) => {
|
||||
const startedAt = error?.config?.metadata?.startedAt || Date.now();
|
||||
try {
|
||||
requestLogStore.add({
|
||||
direction: 'outgoing',
|
||||
target: 'foodsharing.de',
|
||||
method: (error.config?.method || 'GET').toUpperCase(),
|
||||
path: error.config?.url || '',
|
||||
status: error?.response?.status || null,
|
||||
durationMs: Date.now() - startedAt,
|
||||
error: error?.message || 'Unbekannter Fehler',
|
||||
responseBody: error?.response?.data
|
||||
});
|
||||
} catch (logError) {
|
||||
console.warn('[REQUEST-LOG] Outgoing-Error-Log fehlgeschlagen:', logError.message);
|
||||
}
|
||||
return Promise.reject(error);
|
||||
}
|
||||
);
|
||||
|
||||
function extractCsrfToken(cookies = []) {
|
||||
if (!Array.isArray(cookies)) {
|
||||
return null;
|
||||
@@ -230,6 +274,16 @@ async function pickupRuleCheck(storeId, utcDate, profileId, session) {
|
||||
return response.data?.result === true;
|
||||
}
|
||||
|
||||
async function fetchStoreMembers(storeId, cookieHeader) {
|
||||
if (!storeId) {
|
||||
return [];
|
||||
}
|
||||
const response = await client.get(`/api/stores/${storeId}/member`, {
|
||||
headers: buildHeaders(cookieHeader)
|
||||
});
|
||||
return Array.isArray(response.data) ? response.data : [];
|
||||
}
|
||||
|
||||
async function bookSlot(storeId, utcDate, profileId, session) {
|
||||
await client.post(
|
||||
`/api/stores/${storeId}/pickups/${utcDate}/${profileId}`,
|
||||
@@ -248,6 +302,7 @@ module.exports = {
|
||||
fetchPickups,
|
||||
fetchRegionStores,
|
||||
fetchStoreDetails,
|
||||
fetchStoreMembers,
|
||||
pickupRuleCheck,
|
||||
bookSlot
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user