All files / publisher/hooks usePolicies.ts

25% Statements 2/8
0% Branches 0/4
100% Functions 2/2
25% Lines 2/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32                19x     3x                                        
import { useQuery } from "react-query";
import type { Policy } from "../types/shared";
import { UsePoliciesResponse, ApiError } from "../types/shared";
 
function usePolicies(
  brandId: string | undefined,
  modelId: string | undefined,
): UsePoliciesResponse {
  return useQuery<Policy[], ApiError>({
    queryKey: ["policies", brandId],
    queryFn: async () => {
      const response = await fetch(
        `/api/store/${brandId}/models/${modelId}/policies`,
      );
 
      if (!response.ok) {
        throw new Error("There was a problem fetching policies");
      }
 
      const policiesData = await response.json();
 
      if (!policiesData.success) {
        throw new Error(policiesData.message);
      }
 
      return policiesData.data;
    },
  });
}
 
export default usePolicies;