export function getDetailsRequestData()

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),
  };
}