summaryrefslogtreecommitdiff
path: root/internal/server/base.go
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2023-04-12 22:52:49 +0200
committerJeroen Wijenbergh <46386452+jwijenbergh@users.noreply.github.com>2023-09-25 09:43:37 +0200
commita23c3e61c5d89ef67973891b5b3a176c06e1b174 (patch)
treef1eed03b047f8affd3d5123fa5c9e868ac7d8bec /internal/server/base.go
parentee95eb45708e1fa766a63866d26d05d13f23e8c9 (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.go112
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
-}