All files governance.ts

100% Statements 3/3
100% Branches 2/2
100% Functions 2/2
100% Lines 3/3

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 33 34 35 36 37 38                                                  1x   2x       2x            
import type { ApiClient } from "./api";
 
export type ReconciliationDomain = "trade" | "payment" | "inventory" | "fulfillment";
export type ReconciliationStatus = "OPEN" | "RESOLVED";
 
export interface ReconciliationIssue {
  domain: string;
  referenceNo: string;
  issueType: string;
  status: ReconciliationStatus;
  occurrences: number;
  firstDetectedAt: string;
  lastDetectedAt: string;
  resolvedAt: string | null;
}
 
export interface GovernanceApi {
  reconciliationIssues(
    domain: ReconciliationDomain,
    status?: ReconciliationStatus,
    limit?: number,
  ): Promise<ReconciliationIssue[]>;
}
 
export function createGovernanceApi(client: ApiClient): GovernanceApi {
  return {
    reconciliationIssues(domain, status = "OPEN", limit = 50) {
      const query = new URLSearchParams({
        status,
        limit: String(limit),
      });
      return client.request<ReconciliationIssue[]>(
        `/api/v1/${domain}/admin/reconciliation/issues?${query.toString()}`,
      );
    },
  };
}