Files
authentik/web/src/admin/providers/proxy/ProxyProviderFormHelpers.ts

41 lines
1.2 KiB
TypeScript

import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
import { PropertymappingsApi, ScopeMapping } from "@goauthentik/api";
const mappingToSelect = (s: ScopeMapping) => [s.pk, s.name, s.name, s];
export async function propertyMappingsProvider(page = 1, search = "") {
const propertyMappings = await new PropertymappingsApi(
DEFAULT_CONFIG,
).propertymappingsProviderScopeList({
ordering: "scope_name",
pageSize: 20,
search: search.trim(),
page,
});
return {
pagination: propertyMappings.pagination,
options: propertyMappings.results.map(mappingToSelect),
};
}
export function propertyMappingsSelector(instanceMappings?: string[]) {
if (!instanceMappings) {
return async () => [];
}
return async () => {
const pm = new PropertymappingsApi(DEFAULT_CONFIG);
const mappings = await Promise.allSettled(
instanceMappings.map((instanceId) =>
pm.propertymappingsProviderScopeRetrieve({ pmUuid: instanceId }),
),
);
return mappings
.filter((s) => s.status === "fulfilled")
.map((s) => s.value)
.map(mappingToSelect);
};
}