diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2023-04-12 22:52:49 +0200 |
|---|---|---|
| committer | Jeroen Wijenbergh <46386452+jwijenbergh@users.noreply.github.com> | 2023-09-25 09:43:37 +0200 |
| commit | a23c3e61c5d89ef67973891b5b3a176c06e1b174 (patch) | |
| tree | f1eed03b047f8affd3d5123fa5c9e868ac7d8bec /internal/server/base.go | |
| parent | ee95eb45708e1fa766a63866d26d05d13f23e8c9 (diff) | |
Refactor: Split internal server into multiple packages
- Pass contexts
- Have separate packages for e.g. custom, institute and secure
- internet servers, profiles....
- Return types from the public ./types package with a Public() method
Diffstat (limited to 'internal/server/base.go')
| -rw-r--r-- | internal/server/base.go | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/internal/server/base.go b/internal/server/base.go deleted file mode 100644 index c7a9adc..0000000 --- a/internal/server/base.go +++ /dev/null @@ -1,112 +0,0 @@ -package server - -import ( - "time" - - "github.com/eduvpn/eduvpn-common/internal/http" -) - -// Base is 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"` - httpClient *http.Client -} - -func (b *Base) InitializeEndpoints() error { - ep, err := APIGetEndpoints(b.URL, b.httpClient) - if err != nil { - return err - } - b.Endpoints = *ep - return nil -} - -func (b *Base) ValidProfiles(wireguardSupport bool) ProfileInfo { - var valid []Profile - for _, p := range b.Profiles.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 ProfileInfo{ - Current: b.Profiles.Current, - Info: ProfileListInfo{ProfileList: valid}, - } -} - -// RenewButtonTime returns the time when the renew button should be shown for the server -// Implemented according to: https://github.com/eduvpn/documentation/blob/cdf4d054f7652d74e4192494e8bb0e21040e46ac/API.md#session-expiry -func (b *Base) RenewButtonTime() int64 { - d := b.EndTime.Sub(b.StartTime) - - // If the time is less than 24 hours (a day left), show it when 30 minutes have passed or on expired if less than 30 minutes - dayl := time.Duration(24 * time.Hour) - if d < dayl { - // Get the minimum time to add, 30 minutes or on expired - m := time.Duration(30 * time.Minute) - // The total delta time is larger, return that we should show the button after 30 minutes - if d > m { - return b.StartTime.Add(30 * time.Minute).Unix() - } - // Just show it on expired - return b.StartTime.Add(d).Unix() - } - - // Else just show it when 24 hours is left - // This is the delta minus 24 hours left as that's how long it takes for a day to be left in the expiry - // We thus add this to the start time - tillDay := d - dayl - t := b.StartTime.Add(tillDay) - return t.Unix() -} - -func (b *Base) CountdownTime() int64 { - d := b.EndTime.Sub(b.StartTime) - - dayl := time.Duration(24 * time.Hour) - - // This is just the last 24 hours - // if less than or equal to 24 hours, immediately - if d <= dayl { - return b.StartTime.Unix() - } - - tillDay := d - dayl - t := b.StartTime.Add(tillDay) - return t.Unix() -} - -func (b *Base) NotificationTimes() []int64 { - last := []time.Duration{ - time.Duration(0), - time.Duration(1 * time.Hour), - time.Duration(2 * time.Hour), - time.Duration(4 * time.Hour), - } - - var t []int64 - - d := b.EndTime.Sub(b.StartTime) - for _, l := range last { - // If the notification remaining time is more than the total delta, continue - if l > d { - continue - } - // calculating the time till a notification must happen - tillN := d - l - // Get absolute time when this notification must be shown by adding the delta - c := b.StartTime.Add(tillN) - t = append(t, c.Unix()) - } - return t -} |
