NeahNew/node_modules/@keycloak/keycloak-admin-client/lib/resources/clientScopes.js
2025-05-03 15:36:20 +02:00

205 lines
6.4 KiB
JavaScript

import Resource from "./resource.js";
export class ClientScopes extends Resource {
find = this.makeRequest({
method: "GET",
path: "/client-scopes",
});
create = this.makeRequest({
method: "POST",
path: "/client-scopes",
returnResourceIdInLocationHeader: { field: "id" },
});
/**
* Client-Scopes by id
*/
findOne = this.makeRequest({
method: "GET",
path: "/client-scopes/{id}",
urlParamKeys: ["id"],
catchNotFound: true,
});
update = this.makeUpdateRequest({
method: "PUT",
path: "/client-scopes/{id}",
urlParamKeys: ["id"],
});
del = this.makeRequest({
method: "DELETE",
path: "/client-scopes/{id}",
urlParamKeys: ["id"],
});
/**
* Default Client-Scopes
*/
listDefaultClientScopes = this.makeRequest({
method: "GET",
path: "/default-default-client-scopes",
});
addDefaultClientScope = this.makeRequest({
method: "PUT",
path: "/default-default-client-scopes/{id}",
urlParamKeys: ["id"],
});
delDefaultClientScope = this.makeRequest({
method: "DELETE",
path: "/default-default-client-scopes/{id}",
urlParamKeys: ["id"],
});
/**
* Default Optional Client-Scopes
*/
listDefaultOptionalClientScopes = this.makeRequest({
method: "GET",
path: "/default-optional-client-scopes",
});
addDefaultOptionalClientScope = this.makeRequest({
method: "PUT",
path: "/default-optional-client-scopes/{id}",
urlParamKeys: ["id"],
});
delDefaultOptionalClientScope = this.makeRequest({
method: "DELETE",
path: "/default-optional-client-scopes/{id}",
urlParamKeys: ["id"],
});
/**
* Protocol Mappers
*/
addMultipleProtocolMappers = this.makeUpdateRequest({
method: "POST",
path: "/client-scopes/{id}/protocol-mappers/add-models",
urlParamKeys: ["id"],
});
addProtocolMapper = this.makeUpdateRequest({
method: "POST",
path: "/client-scopes/{id}/protocol-mappers/models",
urlParamKeys: ["id"],
});
listProtocolMappers = this.makeRequest({
method: "GET",
path: "/client-scopes/{id}/protocol-mappers/models",
urlParamKeys: ["id"],
});
findProtocolMapper = this.makeRequest({
method: "GET",
path: "/client-scopes/{id}/protocol-mappers/models/{mapperId}",
urlParamKeys: ["id", "mapperId"],
catchNotFound: true,
});
findProtocolMappersByProtocol = this.makeRequest({
method: "GET",
path: "/client-scopes/{id}/protocol-mappers/protocol/{protocol}",
urlParamKeys: ["id", "protocol"],
catchNotFound: true,
});
updateProtocolMapper = this.makeUpdateRequest({
method: "PUT",
path: "/client-scopes/{id}/protocol-mappers/models/{mapperId}",
urlParamKeys: ["id", "mapperId"],
});
delProtocolMapper = this.makeRequest({
method: "DELETE",
path: "/client-scopes/{id}/protocol-mappers/models/{mapperId}",
urlParamKeys: ["id", "mapperId"],
});
/**
* Scope Mappings
*/
listScopeMappings = this.makeRequest({
method: "GET",
path: "/client-scopes/{id}/scope-mappings",
urlParamKeys: ["id"],
});
addClientScopeMappings = this.makeUpdateRequest({
method: "POST",
path: "/client-scopes/{id}/scope-mappings/clients/{client}",
urlParamKeys: ["id", "client"],
});
listClientScopeMappings = this.makeRequest({
method: "GET",
path: "/client-scopes/{id}/scope-mappings/clients/{client}",
urlParamKeys: ["id", "client"],
});
listAvailableClientScopeMappings = this.makeRequest({
method: "GET",
path: "/client-scopes/{id}/scope-mappings/clients/{client}/available",
urlParamKeys: ["id", "client"],
});
listCompositeClientScopeMappings = this.makeRequest({
method: "GET",
path: "/client-scopes/{id}/scope-mappings/clients/{client}/composite",
urlParamKeys: ["id", "client"],
});
delClientScopeMappings = this.makeUpdateRequest({
method: "DELETE",
path: "/client-scopes/{id}/scope-mappings/clients/{client}",
urlParamKeys: ["id", "client"],
});
addRealmScopeMappings = this.makeUpdateRequest({
method: "POST",
path: "/client-scopes/{id}/scope-mappings/realm",
urlParamKeys: ["id"],
});
listRealmScopeMappings = this.makeRequest({
method: "GET",
path: "/client-scopes/{id}/scope-mappings/realm",
urlParamKeys: ["id"],
});
listAvailableRealmScopeMappings = this.makeRequest({
method: "GET",
path: "/client-scopes/{id}/scope-mappings/realm/available",
urlParamKeys: ["id"],
});
listCompositeRealmScopeMappings = this.makeRequest({
method: "GET",
path: "/client-scopes/{id}/scope-mappings/realm/composite",
urlParamKeys: ["id"],
});
delRealmScopeMappings = this.makeUpdateRequest({
method: "DELETE",
path: "/client-scopes/{id}/scope-mappings/realm",
urlParamKeys: ["id"],
});
constructor(client) {
super(client, {
path: "/admin/realms/{realm}",
getUrlParams: () => ({
realm: client.realmName,
}),
getBaseUrl: () => client.baseUrl,
});
}
/**
* Find client scope by name.
*/
async findOneByName(payload) {
const allScopes = await this.find({
...(payload.realm ? { realm: payload.realm } : {}),
});
return allScopes.find((item) => item.name === payload.name);
}
/**
* Delete client scope by name.
*/
async delByName(payload) {
const scope = await this.findOneByName(payload);
if (!scope) {
throw new Error("Scope not found.");
}
await this.del({
...(payload.realm ? { realm: payload.realm } : {}),
id: scope.id,
});
}
/**
* Find single protocol mapper by name.
*/
async findProtocolMapperByName(payload) {
const allProtocolMappers = await this.listProtocolMappers({
id: payload.id,
...(payload.realm ? { realm: payload.realm } : {}),
});
return allProtocolMappers.find((mapper) => mapper.name === payload.name);
}
}