updated sse supporting react-openapi

This commit is contained in:
2026-06-18 20:32:34 +05:30
parent 0a668cf98d
commit 154b15fe51
28 changed files with 2132 additions and 440 deletions

View File

@@ -1,5 +1,4 @@
import { useResourceByName } from "../../../react-openapi";
import { api } from "../../../react-openapi/api/client";
import { useAppContext, useResource, getApi } from "../../../react-openapi";
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import type { ResolveAmbiguityPayload } from "./fetch-requests.models";
@@ -8,28 +7,51 @@ export function useFetchRequestsList(params?: {
account_name?: string;
source_type?: string;
}) {
const { useList } = useResourceByName("fetch-requests");
return useList(params);
const { resources } = useAppContext();
const resource = resources.find(r => r.name === "fetch-requests")!;
const { list } = useResource(resource);
return useQuery({
queryKey: ["fetch-requests", "list", params],
queryFn: () => list(params),
});
}
export function useFetchRequest(id: string) {
const { useRead } = useResourceByName("fetch-requests");
return useRead(id);
const { resources } = useAppContext();
const resource = resources.find(r => r.name === "fetch-requests")!;
const { get } = useResource(resource);
return useQuery({
queryKey: ["fetch-requests", "detail", id],
queryFn: () => get(id),
enabled: !!id,
});
}
export function useCreateFetchRequest() {
const { useCreate } = useResourceByName("fetch-requests");
return useCreate();
const { resources } = useAppContext();
const resource = resources.find(r => r.name === "fetch-requests")!;
const { create } = useResource(resource);
return useMutation({
mutationFn: (data: any) => create(data),
});
}
export function useUpdateFetchRequest() {
const { usePatch } = useResourceByName("fetch-requests");
return usePatch();
const { resources } = useAppContext();
const resource = resources.find(r => r.name === "fetch-requests")!;
const { update } = useResource(resource);
return useMutation({
mutationFn: ({ id, data }: { id: string; data: any }) => update(id, data),
});
}
export function useDeleteFetchRequest() {
const { useDelete } = useResourceByName("fetch-requests");
return useDelete();
const { resources } = useAppContext();
const resource = resources.find(r => r.name === "fetch-requests")!;
const { remove } = useResource(resource);
return useMutation({
mutationFn: (id: string) => remove(id),
});
}
export function useUploadFile() {
@@ -37,6 +59,7 @@ export function useUploadFile() {
mutationFn: async (file: File) => {
const arrayBuffer = await file.arrayBuffer();
const binary = new Uint8Array(arrayBuffer);
const api = getApi();
const res = await api.post("/uploads", binary, {
headers: {
"Content-Type": file.type,
@@ -52,6 +75,7 @@ export function useFetchRequestAmbiguities(fetchRequestId: string) {
return useQuery({
queryKey: ["fetch-requests", fetchRequestId, "ambiguities"],
queryFn: async () => {
const api = getApi();
const res = await api.get(
`/fetch-requests/${fetchRequestId}/ambiguities`
);
@@ -72,6 +96,7 @@ export function useResolveAmbiguity() {
ambiguityId: string;
payload: ResolveAmbiguityPayload;
}) => {
const api = getApi();
const res = await api.post(
`/ambiguities/${ambiguityId}/resolve`,
payload

View File

@@ -2,3 +2,8 @@ export type {
ReportSnapshot,
ReportQuery,
} from "./report-snapshots.models";
export {
useReportSnapshotsList,
useCreateSnapshot,
useDeleteSnapshot,
} from "./useReportSnapshots";

View File

@@ -1,16 +1,34 @@
import { useResourceByName } from "../../../react-openapi";
import { useAppContext, useResource } from "../../../react-openapi";
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
export function useReportSnapshotsList() {
const { useList } = useResourceByName("reports");
return useList();
const { resources } = useAppContext();
const resource = resources.find(r => r.name === "reports")!;
const { list } = useResource(resource);
return useQuery({
queryKey: ["reports", "list"],
queryFn: () => list(),
});
}
export function useCreateSnapshot() {
const { useCreate } = useResourceByName("reports");
return useCreate();
const { resources } = useAppContext();
const resource = resources.find(r => r.name === "reports")!;
const { create } = useResource(resource);
return useMutation({
mutationFn: (data: any) => create(data),
});
}
export function useDeleteSnapshot() {
const { useDelete } = useResourceByName("reports");
return useDelete();
const queryClient = useQueryClient();
const { resources } = useAppContext();
const resource = resources.find(r => r.name === "reports")!;
const { remove } = useResource(resource);
return useMutation({
mutationFn: (id: string) => remove(id),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ["reports", "list"] });
},
});
}

View File

@@ -1,4 +1,5 @@
import { useResourceByName } from "../../../react-openapi";
import { useAppContext, useResource } from "../../../react-openapi";
import { useQuery } from "@tanstack/react-query";
export interface ReportParams {
snapshot_id?: string;
@@ -9,13 +10,13 @@ export interface ReportParams {
}
export function useReport(params: ReportParams) {
const { useRead } = useResourceByName("reports");
const { resources } = useAppContext();
const resource = resources.find(r => r.name === "reports")!;
const { get } = useResource(resource);
return useRead(
params.snapshot_id ? params.snapshot_id : "latest",
{
...params,
periods: params.periods,
}
);
return useQuery({
queryKey: ["reports", "read", params],
queryFn: () =>
get(params.snapshot_id ? params.snapshot_id : "latest"),
});
}