mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-07 00:13:53 +00:00
2586b0b10c
* addtime endpoint * create universal Subscription * add http integration * catch error from HTTP integration emit * unify osc and http validateSubscriptionEntry * add necessary endpoint for http subscription * make subscription part of modal generic * add http subscription to integration modal * remove log * Revert "addtime endpoint" This reverts commit4c039220dc. * reuse agent and test url compatibility * simplify retun path * add todo in UI * test for http protocol * import not needed yet * lint * fix merge * lint * fix httpPlaceholder * wip: prepare endpoints * wip: temporary fix to get form to work * disable HTTP integration if enabledOut==false * register/unregister http * refactor: subscription types and form register * refactor: validation * cleanup * cleanup * try GOT * allow https * split url and searchParams allow for post option * add options to post * add retry count * fix test * Revert "fix test" This reverts commit927e88370f. * Revert "add options to post" This reverts commit0523a68ef4. * Revert "split url and searchParams allow for post option" This reverts commit54ab8d4ffe. * missing retryCount in httpPlaceholder * remove global this * remove retry count * remove https --------- Co-authored-by: Carlos Valente <carlosvalente@pm.me>
34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import { useMutation, useQuery } from '@tanstack/react-query';
|
|
import { HttpSettings } from 'ontime-types';
|
|
|
|
import { queryRefetchIntervalSlow } from '../../ontimeConfig';
|
|
import { HTTP_SETTINGS } from '../api/apiConstants';
|
|
import { logAxiosError } from '../api/apiUtils';
|
|
import { getHTTP, postHTTP } from '../api/ontimeApi';
|
|
import { httpPlaceholder } from '../models/Http';
|
|
import { ontimeQueryClient } from '../queryClient';
|
|
|
|
export function useHttpSettings() {
|
|
const { data, status, isFetching, isError, refetch } = useQuery({
|
|
queryKey: HTTP_SETTINGS,
|
|
queryFn: getHTTP,
|
|
placeholderData: httpPlaceholder,
|
|
retry: 5,
|
|
retryDelay: (attempt: number) => attempt * 2500,
|
|
refetchInterval: queryRefetchIntervalSlow,
|
|
networkMode: 'always',
|
|
});
|
|
|
|
// we need to jump through some hoops because of the type op port
|
|
return { data: data! as unknown as HttpSettings, status, isFetching, isError, refetch };
|
|
}
|
|
|
|
export function usePostHttpSettings() {
|
|
const { isPending, mutateAsync } = useMutation({
|
|
mutationFn: postHTTP,
|
|
onError: (error) => logAxiosError('Error saving HTTP settings', error),
|
|
onSettled: () => ontimeQueryClient.invalidateQueries({ queryKey: HTTP_SETTINGS }),
|
|
});
|
|
return { isPending, mutateAsync };
|
|
}
|