in src/components/Firestore/Requests/RequestDetails/index.tsx [95:120]
export function getDetailsRequestData(
request?: FirestoreRulesEvaluation
): DetailedRequestData {
if (!request) {
return {};
}
const { rulesContext, granularAllowOutcomes, rules, outcome } = request;
// (time * 1000) converts timestamp units from seconds to milliseconds
const requestDate = new Date(rulesContext.time);
return {
requestTimeComplete: requestDate.toLocaleString(),
requestTimeFormatted: requestDate.toLocaleTimeString('en-US', {
hour12: false,
}),
requestMethod: rulesContext.method,
resourcePath: rulesContext.path.replace(
'/databases/(default)/documents',
''
),
outcome,
outcomeData: OUTCOME_DATA[outcome],
firestoreRules: rules,
linesOutcome: getLinesOutcome(granularAllowOutcomes),
inspectionExpressions: getInspectionExpressions(rulesContext, outcome),
};
}