Skip to article
Documentation

src/lib/load-review.ts

Linked repository file from this build.

import { reviewKey } from "@/features/reviews/review-key";
import { assertReviewAccess } from "@/lib/auth/scope";
import { touchReview } from "@/lib/db/inbox-store";
import { reviewStore } from "@/lib/db/review-store";
import type { StoredReview } from "@/features/reviews/review-store";
import type { Actor } from "@/features/reviews/types";

export async function loadReviewForActor(
  actor: Actor,
  key: string,
): Promise<StoredReview | undefined> {
  const stored = await reviewStore.load(key);
  if (stored) {
    assertReviewAccess(actor, stored.review);
    await touchReview(actor, reviewKey(stored.review), stored.version);
  }
  return stored;
}