From 6e960cbe8e4730bd6cb7f898c1c33058da6abdd0 Mon Sep 17 00:00:00 2001 From: Tommaso Ascani Date: Wed, 28 Jan 2026 11:57:48 +0100 Subject: [PATCH] fix: rename SubExtensions to Extensions in user models and related logic --- docs/AUTHENTICATION.md | 2 +- mock_auth_helpers.go | 10 +++++----- models/mapping.go | 2 +- service/authclient.go | 8 ++++---- service/authclient_test.go | 12 ++++++------ service/messages_test.go | 4 ++-- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/AUTHENTICATION.md b/docs/AUTHENTICATION.md index 11aa141..c8decf9 100644 --- a/docs/AUTHENTICATION.md +++ b/docs/AUTHENTICATION.md @@ -20,7 +20,7 @@ When a client sends a request with `username` and `password`, the proxy performs 7. GET from `{EXT_AUTH_URL}/api/chat?users=1` with Bearer token in Authorization header 8. Parse the response to extract: - Matrix homeserver configuration (`matrix.base_url`, `matrix.acrobits_url`) - - User mappings from the `users` array (`user_name`, `main_extension`, `sub_extensions`) + - User mappings from the `users` array (`user_name`, `main_extension`, `extensions`) 9. Convert user data into `MappingRequest` objects and cache them **Error Handling** diff --git a/mock_auth_helpers.go b/mock_auth_helpers.go index dbcb840..a158832 100644 --- a/mock_auth_helpers.go +++ b/mock_auth_helpers.go @@ -34,7 +34,7 @@ type ChatMatrixConfig struct { type ChatUser struct { UserName string `json:"user_name"` MainExtension string `json:"main_extension"` - SubExtensions []string `json:"sub_extensions"` + Extensions []string `json:"extensions"` } type ChatResponse struct { @@ -46,7 +46,7 @@ type mockAuthUser struct { Username string Password string MainExtension string - SubExtensions []string + Extensions []string } var mockAuthUsers = []mockAuthUser{ @@ -54,13 +54,13 @@ var mockAuthUsers = []mockAuthUser{ Username: "giacomo", Password: "Giacomo,1234", MainExtension: "201", - SubExtensions: []string{"91201", "92201"}, + Extensions: []string{"91201", "92201"}, }, { Username: "mario", Password: "Mario,1234", MainExtension: "202", - SubExtensions: []string{"91202"}, + Extensions: []string{"91202"}, }, } @@ -226,7 +226,7 @@ func handleMockChat(w http.ResponseWriter, r *http.Request) { response.Users = append(response.Users, ChatUser{ UserName: u.Username, MainExtension: u.MainExtension, - SubExtensions: u.SubExtensions, + Extensions: u.Extensions, }) } } diff --git a/models/mapping.go b/models/mapping.go index e479ed7..b50a531 100644 --- a/models/mapping.go +++ b/models/mapping.go @@ -42,7 +42,7 @@ type ChatMatrixConfig struct { type ChatUser struct { UserName string `json:"user_name"` MainExtension string `json:"main_extension"` - SubExtensions []string `json:"sub_extensions"` + Extensions []string `json:"extensions"` } // JWTClaims holds custom claims from the JWT token diff --git a/service/authclient.go b/service/authclient.go index 734c01c..2ac7f3f 100644 --- a/service/authclient.go +++ b/service/authclient.go @@ -21,7 +21,7 @@ import ( // AuthResponse represents the user data returned from the external /chat endpoint. type AuthResponse struct { MainExtension string `json:"main_extension"` - SubExtensions []string `json:"sub_extensions"` + Extensions []string `json:"extensions"` UserName string `json:"user_name"` } @@ -211,7 +211,7 @@ func (h *HTTPAuthClient) Validate(ctx context.Context, username, password, homes // Convert chat users to mappings mappings := make([]*models.MappingRequest, 0, len(chatResponse.Users)) for _, user := range chatResponse.Users { - logger.Debug().Str("user_name", user.UserName).Str("main_extension", user.MainExtension).Strs("sub_extensions", user.SubExtensions).Msg("authclient: processing chat user") + logger.Debug().Str("user_name", user.UserName).Str("main_extension", user.MainExtension).Strs("extensions", user.Extensions).Msg("authclient: processing chat user") // Validate main_extension exists and is a number mainExtStr := strings.TrimSpace(user.MainExtension) @@ -226,8 +226,8 @@ func (h *HTTPAuthClient) Validate(ctx context.Context, username, password, homes } // Parse sub extensions - subNums := make([]int, 0, len(user.SubExtensions)) - for _, ssub := range user.SubExtensions { + subNums := make([]int, 0, len(user.Extensions)) + for _, ssub := range user.Extensions { ssub = strings.TrimSpace(ssub) if ssub == "" { continue diff --git a/service/authclient_test.go b/service/authclient_test.go index 18096c7..0c4c00c 100644 --- a/service/authclient_test.go +++ b/service/authclient_test.go @@ -44,12 +44,12 @@ func TestHTTPAuthClient_SuccessfulTwoStepAuth(t *testing.T) { { UserName: "giacomo", MainExtension: "201", - SubExtensions: []string{"91201", "92201"}, + Extensions: []string{"91201", "92201"}, }, { UserName: "mario", MainExtension: "202", - SubExtensions: []string{"91202"}, + Extensions: []string{"91202"}, }, }, } @@ -99,7 +99,7 @@ func TestHTTPAuthClient_PlainUsername(t *testing.T) { w.WriteHeader(http.StatusOK) resp := models.ChatResponse{ Users: []models.ChatUser{ - {UserName: "giacomo", MainExtension: "201", SubExtensions: []string{}}, + {UserName: "giacomo", MainExtension: "201", Extensions: []string{}}, }, } json.NewEncoder(w).Encode(resp) @@ -183,7 +183,7 @@ func TestHTTPAuthClient_CacheHit(t *testing.T) { w.WriteHeader(http.StatusOK) resp := models.ChatResponse{ Users: []models.ChatUser{ - {UserName: "giacomo", MainExtension: "201", SubExtensions: []string{}}, + {UserName: "giacomo", MainExtension: "201", Extensions: []string{}}, }, } json.NewEncoder(w).Encode(resp) @@ -220,8 +220,8 @@ func TestHTTPAuthClient_InvalidMainExtension(t *testing.T) { w.WriteHeader(http.StatusOK) resp := models.ChatResponse{ Users: []models.ChatUser{ - {UserName: "giacomo", MainExtension: "201", SubExtensions: []string{}}, - {UserName: "alice", MainExtension: "invalid", SubExtensions: []string{}}, + {UserName: "giacomo", MainExtension: "201", Extensions: []string{}}, + {UserName: "alice", MainExtension: "invalid", Extensions: []string{}}, }, } json.NewEncoder(w).Encode(resp) diff --git a/service/messages_test.go b/service/messages_test.go index 1b91ad5..df84df4 100644 --- a/service/messages_test.go +++ b/service/messages_test.go @@ -390,7 +390,7 @@ func TestReportPushToken(t *testing.T) { w.WriteHeader(http.StatusOK) resp := models.ChatResponse{ Users: []models.ChatUser{ - {UserName: "alice", MainExtension: "201", SubExtensions: []string{"91201"}}, + {UserName: "alice", MainExtension: "201", Extensions: []string{"91201"}}, }, } json.NewEncoder(w).Encode(resp) @@ -437,7 +437,7 @@ func TestReportPushToken(t *testing.T) { w.WriteHeader(http.StatusOK) resp := models.ChatResponse{ Users: []models.ChatUser{ - {UserName: "alice", MainExtension: "201", SubExtensions: []string{"91201"}}, + {UserName: "alice", MainExtension: "201", Extensions: []string{"91201"}}, }, } json.NewEncoder(w).Encode(resp)