summaryrefslogtreecommitdiff
path: root/internal/server/profile
diff options
context:
space:
mode:
Diffstat (limited to 'internal/server/profile')
-rw-r--r--internal/server/profile/profile.go88
-rw-r--r--internal/server/profile/profile_test.go100
2 files changed, 0 insertions, 188 deletions
diff --git a/internal/server/profile/profile.go b/internal/server/profile/profile.go
deleted file mode 100644
index 7a19685..0000000
--- a/internal/server/profile/profile.go
+++ /dev/null
@@ -1,88 +0,0 @@
-package profile
-
-import (
- "github.com/eduvpn/eduvpn-common/types/protocol"
- "github.com/eduvpn/eduvpn-common/types/server"
-)
-
-type Profile struct {
- ID string `json:"profile_id"`
- DisplayName string `json:"display_name"`
- VPNProtoList []string `json:"vpn_proto_list"`
- DefaultGateway bool `json:"default_gateway"`
-}
-
-type ListInfo struct {
- ProfileList []Profile `json:"profile_list"`
-}
-
-type Info struct {
- Current string `json:"current_profile"`
- Info ListInfo `json:"info"`
-}
-
-func (info Info) CurrentProfileIndex() int {
- for i, profile := range info.Info.ProfileList {
- if profile.ID == info.Current {
- return i
- }
- }
- // Default is 'first' profile
- return 0
-}
-
-func (profile *Profile) supportsProtocol(protocol string) bool {
- for _, proto := range profile.VPNProtoList {
- if proto == protocol {
- return true
- }
- }
- return false
-}
-
-func (profile *Profile) SupportsWireguard() bool {
- return profile.supportsProtocol("wireguard")
-}
-
-func (profile *Profile) SupportsOpenVPN() bool {
- return profile.supportsProtocol("openvpn")
-}
-
-func (info Info) Supported(wireguardSupport bool) []Profile {
- var valid []Profile
- for _, p := range info.Info.ProfileList {
- // Not a valid profile because it does not support openvpn
- // Also the client does not support wireguard
- if !p.SupportsOpenVPN() && !wireguardSupport {
- continue
- }
- valid = append(valid, p)
- }
- return valid
-}
-
-func (info Info) Has(id string) bool {
- for _, p := range info.Info.ProfileList {
- if p.ID == id {
- return true
- }
- }
- return false
-}
-
-func (info Info) Public() server.Profiles {
- m := make(map[string]server.Profile)
- for _, p := range info.Info.ProfileList {
- var protocols []protocol.Protocol
- for _, ps := range p.VPNProtoList {
- protocols = append(protocols, protocol.New(ps))
- }
- m[p.ID] = server.Profile{
- DisplayName: map[string]string{
- "en": p.DisplayName,
- },
- Protocols: protocols,
- }
- }
- return server.Profiles{Map: m, Current: info.Current}
-}
diff --git a/internal/server/profile/profile_test.go b/internal/server/profile/profile_test.go
deleted file mode 100644
index e246b5c..0000000
--- a/internal/server/profile/profile_test.go
+++ /dev/null
@@ -1,100 +0,0 @@
-package profile
-
-import "testing"
-
-func Test_CurrentProfileIndex(t *testing.T) {
- testCases := []struct {
- profiles []Profile
- current string
- index int
- }{
- {
- profiles: []Profile{
- {
- ID: "a",
- DisplayName: "b",
- VPNProtoList: []string{"openvpn", "wireguard"},
- },
- },
- current: "a",
- index: 0,
- },
- {
- profiles: []Profile{
- {
- ID: "a",
- DisplayName: "a",
- VPNProtoList: []string{"openvpn", "wireguard"},
- },
- {
- ID: "b",
- DisplayName: "b",
- VPNProtoList: []string{"openvpn", "wireguard"},
- },
- },
- current: "b",
- index: 1,
- },
- {
- profiles: []Profile{
- {
- ID: "a",
- DisplayName: "a",
- VPNProtoList: []string{"openvpn", "wireguard"},
- },
- {
- ID: "b",
- DisplayName: "b",
- VPNProtoList: []string{"openvpn", "wireguard"},
- },
- },
- current: "",
- index: 0,
- },
- {
- profiles: []Profile{
- {
- ID: "a",
- DisplayName: "a",
- VPNProtoList: []string{"openvpn", "wireguard"},
- },
- {
- ID: "b",
- DisplayName: "b",
- VPNProtoList: []string{"openvpn", "wireguard"},
- },
- },
- current: "",
- index: 0,
- },
- {
- profiles: []Profile{
- {
- ID: "a",
- DisplayName: "a",
- VPNProtoList: []string{"openvpn", "wireguard"},
- },
- {
- ID: "b",
- DisplayName: "b",
- VPNProtoList: []string{"openvpn", "wireguard"},
- },
- },
- current: "idonotexist",
- index: 0,
- },
- }
-
- for _, tc := range testCases {
- pri := &Info{
- Current: tc.current,
- Info: ListInfo{
- ProfileList: tc.profiles,
- },
- }
- got := pri.CurrentProfileIndex()
- if got != tc.index {
- t.Fatalf("failed getting profile index, got: '%v', want: '%v'", got, tc.index)
- }
- }
-}