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

View File

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

View File

@@ -228,7 +228,7 @@ export const resourceQueries = {
queryFn: async ({ signal, meta }) => { queryFn: async ({ signal, meta }) => {
const res = await meta!.api.get< const res = await meta!.api.get<
AxiosResponse<ListSiteResourceUsersResponse> AxiosResponse<ListSiteResourceUsersResponse>
>(`/site-resource/${resourceId}/users`, { signal }); >(`/resource/${resourceId}/users`, { signal });
return res.data.data.users; return res.data.data.users;
} }
}), }),
@@ -238,18 +238,39 @@ export const resourceQueries = {
queryFn: async ({ signal, meta }) => { queryFn: async ({ signal, meta }) => {
const res = await meta!.api.get< const res = await meta!.api.get<
AxiosResponse<ListSiteResourceRolesResponse> AxiosResponse<ListSiteResourceRolesResponse>
>(`/site-resource/${resourceId}/roles`, { signal }); >(`/resource/${resourceId}/roles`, { signal });
return res.data.data.roles; return res.data.data.roles;
} }
}), }),
resourceClients: ({ resourceId }: { resourceId: number }) => siteResourceUsers: ({ siteResourceId }: { siteResourceId: number }) =>
queryOptions({ 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 }) => { queryFn: async ({ signal, meta }) => {
const res = await meta!.api.get< const res = await meta!.api.get<
AxiosResponse<ListSiteResourceClientsResponse> AxiosResponse<ListSiteResourceClientsResponse>
>(`/site-resource/${resourceId}/clients`, { signal }); >(`/site-resource/${siteResourceId}/clients`, { signal });
return res.data.data.clients; return res.data.data.clients;
} }