diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-11-28 15:14:17 +0100 |
|---|---|---|
| committer | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-11-28 15:14:17 +0100 |
| commit | 5143ed35f2af2fe0e725c2a466c86f1cf929333c (patch) | |
| tree | b6c19f466226fa1c25534404f9935464af7cb314 /internal/server/base.go | |
| parent | 3934d75ac516a530ceb9f494f7ce0de12cb1b5de (diff) | |
Server: Split more into multiple implementation files
Diffstat (limited to 'internal/server/base.go')
| -rw-r--r-- | internal/server/base.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/internal/server/base.go b/internal/server/base.go new file mode 100644 index 0000000..bb88eb3 --- /dev/null +++ b/internal/server/base.go @@ -0,0 +1,45 @@ +package server + +import ( + "time" + + "github.com/eduvpn/eduvpn-common/types" +) + +// The base type for servers. +type Base struct { + URL string `json:"base_url"` + DisplayName map[string]string `json:"display_name"` + SupportContact []string `json:"support_contact"` + Endpoints Endpoints `json:"endpoints"` + Profiles ProfileInfo `json:"profiles"` + StartTime time.Time `json:"start_time"` + EndTime time.Time `json:"expire_time"` + Type string `json:"server_type"` +} + +func (base *Base) InitializeEndpoints() error { + errorMessage := "failed initializing endpoints" + endpoints, endpointsErr := APIGetEndpoints(base.URL) + if endpointsErr != nil { + return types.NewWrappedError(errorMessage, endpointsErr) + } + base.Endpoints = *endpoints + return nil +} + +func (base *Base) ValidProfiles(clientSupportsWireguard bool) ProfileInfo { + var validProfiles []Profile + for _, profile := range base.Profiles.Info.ProfileList { + // Not a valid profile because it does not support openvpn + // Also the client does not support wireguard + if !profile.supportsOpenVPN() && !clientSupportsWireguard { + continue + } + validProfiles = append(validProfiles, profile) + } + return ProfileInfo{ + Current: base.Profiles.Current, + Info: ProfileListInfo{ProfileList: validProfiles}, + } +} |
