From e3a538a1fb8cf7748eb613d4c5c0c5006e984873 Mon Sep 17 00:00:00 2001 From: LD-Reborn Date: Fri, 17 Jul 2026 21:02:18 +0200 Subject: [PATCH] fix: fixes "member" wording to "client" --- src/ReverseLlama.Server/AdminEndpoints.cs | 16 ++--- src/ReverseLlama.Server/ManagementStore.cs | 14 ++--- src/ReverseLlama.Server/wwwroot/admin/app.js | 64 ++++++++++---------- 3 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/ReverseLlama.Server/AdminEndpoints.cs b/src/ReverseLlama.Server/AdminEndpoints.cs index e9b5454..973c0b4 100644 --- a/src/ReverseLlama.Server/AdminEndpoints.cs +++ b/src/ReverseLlama.Server/AdminEndpoints.cs @@ -225,7 +225,7 @@ internal static class AdminEndpoints ? Results.NoContent() : Results.NotFound(new { error = $"Group '{id}' was not found." })); - api.MapGet("/groups/{id}/members", (string id, ManagementStore store) => + api.MapGet("/groups/{id}/clients", (string id, ManagementStore store) => { var group = store.GetGroup(id); if (group is null) @@ -233,10 +233,10 @@ internal static class AdminEndpoints return Results.NotFound(new { error = $"Group '{id}' was not found." }); } - return Results.Json(store.ListGroupMembers(id)); + return Results.Json(store.ListGroupClients(id)); }); - api.MapPost("/groups/{id}/members", (string id, AddGroupMemberRequest request, ManagementStore store) => + api.MapPost("/groups/{id}/clients", (string id, AddGroupClientRequest request, ManagementStore store) => { var group = store.GetGroup(id); if (group is null) @@ -246,7 +246,7 @@ internal static class AdminEndpoints try { - var member = store.AddGroupMember(id, request.ClientId, request.Model, request.ClientPattern); + var member = store.AddGroupClient(id, request.ClientId, request.Model, request.ClientPattern); return Results.Json(member); } catch (ArgumentException exception) @@ -259,7 +259,7 @@ internal static class AdminEndpoints } }); - api.MapDelete("/groups/{groupId}/members/{memberId:long}", (string groupId, long memberId, ManagementStore store) => + api.MapDelete("/groups/{groupId}/clients/{clientId:long}", (string groupId, long clientId, ManagementStore store) => { var group = store.GetGroup(groupId); if (group is null) @@ -267,9 +267,9 @@ internal static class AdminEndpoints return Results.NotFound(new { error = $"Group '{groupId}' was not found." }); } - return store.RemoveGroupMember(memberId) + return store.RemoveGroupClient(clientId) ? Results.NoContent() - : Results.NotFound(new { error = $"Member '{memberId}' was not found." }); + : Results.NotFound(new { error = $"Client '{clientId}' was not found." }); }); api.MapGet("/api-keys/groups", (ManagementStore store) => @@ -587,7 +587,7 @@ internal sealed record CreateGroupRequest(string? Name); internal sealed record UpdateGroupRequest(string Name); -internal sealed record AddGroupMemberRequest( +internal sealed record AddGroupClientRequest( string? ClientId, string? Model, string? ClientPattern); diff --git a/src/ReverseLlama.Server/ManagementStore.cs b/src/ReverseLlama.Server/ManagementStore.cs index eda7c84..0951d0d 100644 --- a/src/ReverseLlama.Server/ManagementStore.cs +++ b/src/ReverseLlama.Server/ManagementStore.cs @@ -634,7 +634,7 @@ internal sealed class ManagementStore } } - public IReadOnlyList ListGroupMembers(string groupId) + public IReadOnlyList ListGroupClients(string groupId) { if (!_isAvailable || string.IsNullOrWhiteSpace(groupId)) { @@ -653,11 +653,11 @@ internal sealed class ManagementStore """; command.Parameters.AddWithValue("$group_id", groupId); - var result = new List(); + var result = new List(); using var reader = command.ExecuteReader(); while (reader.Read()) { - result.Add(new GroupMemberInfo( + result.Add(new GroupClientInfo( reader.GetInt64(0), reader.GetString(1), reader.IsDBNull(2) ? null : reader.GetString(2), @@ -669,7 +669,7 @@ internal sealed class ManagementStore } } - public GroupMemberInfo AddGroupMember(string groupId, string? clientId, string? model, string? clientPattern) + public GroupClientInfo AddGroupClient(string groupId, string? clientId, string? model, string? clientPattern) { EnsureAvailable(); @@ -712,11 +712,11 @@ internal sealed class ManagementStore using var idCommand = connection.CreateCommand(); idCommand.CommandText = "SELECT last_insert_rowid()"; var insertedId = (long)idCommand.ExecuteScalar()!; - return new GroupMemberInfo(insertedId, groupId, clientId, model, clientPattern); + return new GroupClientInfo(insertedId, groupId, clientId, model, clientPattern); } } - public bool RemoveGroupMember(long memberId) + public bool RemoveGroupClient(long memberId) { if (!_isAvailable) { @@ -1257,7 +1257,7 @@ internal sealed record GroupInfo( DateTimeOffset CreatedAtUtc, DateTimeOffset UpdatedAtUtc); -internal sealed record GroupMemberInfo( +internal sealed record GroupClientInfo( long Id, string GroupId, string? ClientId, diff --git a/src/ReverseLlama.Server/wwwroot/admin/app.js b/src/ReverseLlama.Server/wwwroot/admin/app.js index 41fa5e7..68abf18 100644 --- a/src/ReverseLlama.Server/wwwroot/admin/app.js +++ b/src/ReverseLlama.Server/wwwroot/admin/app.js @@ -70,7 +70,7 @@ content.addEventListener("click", async (event) => { } if (action === "delete-group") { - if (!confirm("Delete this group and all its members and key assignments?")) { + if (!confirm("Delete this group and all its clients and key assignments?")) { return; } @@ -80,13 +80,13 @@ content.addEventListener("click", async (event) => { await refresh(); } - if (action === "remove-member") { - if (!confirm("Remove this member from the group?")) { + if (action === "remove-client") { + if (!confirm("Remove this client from the group?")) { return; } - await api(`/groups/${encodeURIComponent(groupId)}/members/${memberId}`, { method: "DELETE" }); - setNotice("Member removed."); + await api(`/groups/${encodeURIComponent(groupId)}/clients/${memberId}`, { method: "DELETE" }); + setNotice("Client removed."); await loadGroupDetail(groupId); } @@ -153,7 +153,7 @@ content.addEventListener("submit", async (event) => { await loadGroupDetail(groupId); } - if (form.dataset.form === "add-member") { + if (form.dataset.form === "add-client") { const groupId = form.dataset.groupId; const body = {}; if (data.clientId && data.clientId.trim()) { @@ -170,11 +170,11 @@ content.addEventListener("submit", async (event) => { throw new Error("Either Client ID or Client pattern is required."); } - await api(`/groups/${encodeURIComponent(groupId)}/members`, { + await api(`/groups/${encodeURIComponent(groupId)}/clients`, { method: "POST", body }); - setNotice("Member added."); + setNotice("Client added."); form.reset(); await loadGroupDetail(groupId); } @@ -731,13 +731,13 @@ async function loadGroupDetail(groupId) { content.innerHTML = `
Loading group...
`; try { - const [group, members, apiKeyGroups] = await Promise.all([ + const [group, clients, apiKeyGroups] = await Promise.all([ api(`/groups/${encodeURIComponent(groupId)}`), - api(`/groups/${encodeURIComponent(groupId)}/members`), + api(`/groups/${encodeURIComponent(groupId)}/clients`), api("/api-keys/groups") ]); - state.groupDetail = { group, members, apiKeyGroups }; + state.groupDetail = { group, clients, apiKeyGroups }; renderGroupDetail(); } catch (error) { content.innerHTML = `
${escapeHtml(error.message)}
`; @@ -745,7 +745,7 @@ async function loadGroupDetail(groupId) { } function renderGroupDetail() { - const { group, members, apiKeyGroups } = state.groupDetail; + const { group, clients, apiKeyGroups } = state.groupDetail; const allApiKeys = state.summary?.apiKeys || []; const assignedKeyIds = new Set( apiKeyGroups @@ -776,21 +776,21 @@ function renderGroupDetail() {
-

Add member

+

Add client

-
+
- - + +
- - + +
- - + +
@@ -799,11 +799,11 @@ function renderGroupDetail() {
-

Members

- ${members.length} total +

Clients

+ ${clients.length} total
- ${members.length ? groupMembersTable(members, group.id) : emptyState("No members in this group.")} + ${clients.length ? groupClientsTable(clients, group.id) : emptyState("No clients in this group.")}
@@ -817,29 +817,29 @@ function renderGroupDetail() { `; } -function groupMembersTable(members, groupId) { - const rows = members.map((member) => ` +function groupClientsTable(clients, groupId) { + const rows = clients.map((client) => ` - ${member.clientId - ? `
${escapeHtml(member.clientId)}
` + ${client.clientId + ? `
${escapeHtml(client.clientId)}
` : `
-
` } - ${member.model - ? `
${escapeHtml(member.model)}
` + ${client.model + ? `
${escapeHtml(client.model)}
` : `
All models
` } - ${member.clientPattern - ? `
${escapeHtml(member.clientPattern)}
` + ${client.clientPattern + ? `
${escapeHtml(client.clientPattern)}
` : `
-
` } - + `).join("");