fix resource queries

This commit is contained in:
miloschwartz
2025-12-21 19:41:53 -05:00
parent 3577b5efb9
commit c91b4beac5
3 changed files with 48 additions and 24 deletions

View File

@@ -307,17 +307,18 @@ export default function ResourceAuthenticationPage() {
title: t("resourceAuthSettingsSave"),
description: t("resourceAuthSettingsSaveDescription")
});
await queryClient.invalidateQueries({
predicate(query) {
const resourceKey = resourceQueries.resourceClients({
resourceId: resource.resourceId
}).queryKey;
return (
query.queryKey[0] === resourceKey[0] &&
query.queryKey[1] === resourceKey[1]
);
}
});
// invalidate resource queries
await queryClient.invalidateQueries(
resourceQueries.resourceUsers({
resourceId: resource.resourceId
})
);
await queryClient.invalidateQueries(
resourceQueries.resourceRoles({
resourceId: resource.resourceId
})
);
router.refresh();
} catch (e) {
console.error(e);
@@ -398,7 +399,7 @@ export default function ResourceAuthenticationPage() {
api.post(`/resource/${resource.resourceId}/header-auth`, {
user: null,
password: null,
extendedCompatibility: null,
extendedCompatibility: null
})
.then(() => {
toast({
@@ -655,7 +656,9 @@ export default function ResourceAuthenticationPage() {
{autoLoginEnabled && (
<div className="space-y-2">
<label className="text-sm font-medium">
{t("defaultIdentityProvider")}
{t(
"defaultIdentityProvider"
)}
</label>
<Select
onValueChange={(

View File

@@ -281,9 +281,9 @@ export default function EditInternalResourceDialog({
filter: "machine"
}
}),
resourceQueries.resourceUsers({ resourceId: resource.id }),
resourceQueries.resourceRoles({ resourceId: resource.id }),
resourceQueries.resourceClients({ resourceId: resource.id })
resourceQueries.siteResourceUsers({ siteResourceId: resource.id }),
resourceQueries.siteResourceRoles({ siteResourceId: resource.id }),
resourceQueries.siteResourceClients({ siteResourceId: resource.id })
],
combine: (results) => {
const [
@@ -501,13 +501,13 @@ export default function EditInternalResourceDialog({
// ]);
await queryClient.invalidateQueries(
resourceQueries.resourceRoles({ resourceId: resource.id })
resourceQueries.siteResourceRoles({ siteResourceId: resource.id })
);
await queryClient.invalidateQueries(
resourceQueries.resourceUsers({ resourceId: resource.id })
resourceQueries.siteResourceUsers({ siteResourceId: resource.id })
);
await queryClient.invalidateQueries(
resourceQueries.resourceClients({ resourceId: resource.id })
resourceQueries.siteResourceClients({ siteResourceId: resource.id })
);
toast({

View File

@@ -228,7 +228,7 @@ export const resourceQueries = {
queryFn: async ({ signal, meta }) => {
const res = await meta!.api.get<
AxiosResponse<ListSiteResourceUsersResponse>
>(`/site-resource/${resourceId}/users`, { signal });
>(`/resource/${resourceId}/users`, { signal });
return res.data.data.users;
}
}),
@@ -238,18 +238,39 @@ export const resourceQueries = {
queryFn: async ({ signal, meta }) => {
const res = await meta!.api.get<
AxiosResponse<ListSiteResourceRolesResponse>
>(`/site-resource/${resourceId}/roles`, { signal });
>(`/resource/${resourceId}/roles`, { signal });
return res.data.data.roles;
}
}),
resourceClients: ({ resourceId }: { resourceId: number }) =>
siteResourceUsers: ({ siteResourceId }: { siteResourceId: number }) =>
queryOptions({
queryKey: ["RESOURCES", resourceId, "CLIENTS"] as const,
queryKey: ["SITE_RESOURCES", siteResourceId, "USERS"] as const,
queryFn: async ({ signal, meta }) => {
const res = await meta!.api.get<
AxiosResponse<ListSiteResourceUsersResponse>
>(`/site-resource/${siteResourceId}/users`, { signal });
return res.data.data.users;
}
}),
siteResourceRoles: ({ siteResourceId }: { siteResourceId: number }) =>
queryOptions({
queryKey: ["SITE_RESOURCES", siteResourceId, "ROLES"] as const,
queryFn: async ({ signal, meta }) => {
const res = await meta!.api.get<
AxiosResponse<ListSiteResourceRolesResponse>
>(`/site-resource/${siteResourceId}/roles`, { signal });
return res.data.data.roles;
}
}),
siteResourceClients: ({ siteResourceId }: { siteResourceId: number }) =>
queryOptions({
queryKey: ["SITE_RESOURCES", siteResourceId, "CLIENTS"] as const,
queryFn: async ({ signal, meta }) => {
const res = await meta!.api.get<
AxiosResponse<ListSiteResourceClientsResponse>
>(`/site-resource/${resourceId}/clients`, { signal });
>(`/site-resource/${siteResourceId}/clients`, { signal });
return res.data.data.clients;
}