feat(frontend): config history and schedule rollback hooks
This commit is contained in:
@@ -117,3 +117,69 @@ export function useEpg(channelId: string, from?: string, until?: string, channel
|
||||
enabled: !!channelId,
|
||||
});
|
||||
}
|
||||
|
||||
export function useConfigHistory(channelId: string) {
|
||||
const { token } = useAuthContext();
|
||||
return useQuery({
|
||||
queryKey: ["config-history", channelId],
|
||||
queryFn: () => api.channels.listConfigHistory(channelId, token!),
|
||||
enabled: !!token && !!channelId,
|
||||
});
|
||||
}
|
||||
|
||||
export function usePinSnapshot() {
|
||||
const { token } = useAuthContext();
|
||||
const qc = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: ({ channelId, snapId, label }: { channelId: string; snapId: string; label: string | null }) =>
|
||||
api.channels.patchConfigSnapshot(channelId, snapId, label, token!),
|
||||
onSuccess: (_, { channelId }) => qc.invalidateQueries({ queryKey: ["config-history", channelId] }),
|
||||
onError: (e: Error) => toast.error(e.message),
|
||||
});
|
||||
}
|
||||
|
||||
export function useRestoreConfig() {
|
||||
const { token } = useAuthContext();
|
||||
const qc = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: ({ channelId, snapId }: { channelId: string; snapId: string }) =>
|
||||
api.channels.restoreConfigSnapshot(channelId, snapId, token!),
|
||||
onSuccess: (_, { channelId }) => {
|
||||
qc.invalidateQueries({ queryKey: ["channels"] });
|
||||
qc.invalidateQueries({ queryKey: ["config-history", channelId] });
|
||||
},
|
||||
onError: (e: Error) => toast.error(e.message),
|
||||
});
|
||||
}
|
||||
|
||||
export function useScheduleHistory(channelId: string) {
|
||||
const { token } = useAuthContext();
|
||||
return useQuery({
|
||||
queryKey: ["schedule-history", channelId],
|
||||
queryFn: () => api.channels.listScheduleHistory(channelId, token!),
|
||||
enabled: !!token && !!channelId,
|
||||
});
|
||||
}
|
||||
|
||||
export function useScheduleGeneration(channelId: string, genId: string | null) {
|
||||
const { token } = useAuthContext();
|
||||
return useQuery({
|
||||
queryKey: ["schedule-generation", channelId, genId],
|
||||
queryFn: () => api.channels.getScheduleGeneration(channelId, genId!, token!),
|
||||
enabled: !!token && !!channelId && genId !== null,
|
||||
});
|
||||
}
|
||||
|
||||
export function useRollbackSchedule() {
|
||||
const { token } = useAuthContext();
|
||||
const qc = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: ({ channelId, genId }: { channelId: string; genId: string }) =>
|
||||
api.channels.rollbackSchedule(channelId, genId, token!),
|
||||
onSuccess: (_, { channelId }) => {
|
||||
qc.invalidateQueries({ queryKey: ["schedule-history", channelId] });
|
||||
qc.invalidateQueries({ queryKey: ["schedule", channelId] });
|
||||
},
|
||||
onError: (e: Error) => toast.error(e.message),
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user