From 02a54aed212fb69dbacbbd8629ea1fe3b272cddf Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Mon, 9 Dec 2024 14:06:02 +0100 Subject: Profile: Implement priority --- internal/api/api_test.go | 2 ++ internal/api/profiles/profiles.go | 4 ++++ types/server/server.go | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/internal/api/api_test.go b/internal/api/api_test.go index 1f70b20..5034465 100644 --- a/internal/api/api_test.go +++ b/internal/api/api_test.go @@ -274,6 +274,7 @@ func TestAPIInfo(t *testing.T) { "default_gateway": false, "display_name": "test profile 1", "profile_id": "test1", + "profile_priority": 3, "vpn_proto_list": [ "openvpn", "wireguard" @@ -291,6 +292,7 @@ func TestAPIInfo(t *testing.T) { ID: "test1", DisplayName: "test profile 1", VPNProtoList: []string{"openvpn", "wireguard"}, + Priority: 3, DefaultGateway: false, }, }, diff --git a/internal/api/profiles/profiles.go b/internal/api/profiles/profiles.go index 9f51064..e835ffe 100644 --- a/internal/api/profiles/profiles.go +++ b/internal/api/profiles/profiles.go @@ -26,6 +26,9 @@ type Profile struct { // This is provided for a Linux client issue // See: https://github.com/eduvpn/python-eduvpn-client/issues/550 DNSSearchDomains []string `json:"dns_search_domain_list"` + // Priority is the priority of the profile for sorting in the UI + // the higher the priority, the higher it should be in the list + Priority int `json:"profile_priority"` } // ListInfo is the struct that has the profile list @@ -109,6 +112,7 @@ func (i Info) Public() server.Profiles { "en": p.DisplayName, }, DefaultGateway: p.DefaultGateway, + Priority: p.Priority, } } return server.Profiles{Map: m} diff --git a/types/server/server.go b/types/server/server.go index 26c41c3..5d5d4ca 100644 --- a/types/server/server.go +++ b/types/server/server.go @@ -89,6 +89,10 @@ type Profile struct { // DefaultGateway is true when the profile is a default gateway one DefaultGateway bool `json:"default_gateway"` + + // Priority is the priority of the profile for sorting in the UI + // the higher the priority, the higher it should be in the list + Priority int `json:"priority"` } // Profiles is the map of profiles with the current defined -- cgit v1.2.3