From 242903aa810797102b14e27dda988fff7ab833cc Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Tue, 11 Oct 2022 15:27:46 +0200 Subject: Client + Server: Set the current institute / custom server on adding --- internal/server/instituteaccess.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'internal/server/instituteaccess.go') diff --git a/internal/server/instituteaccess.go b/internal/server/instituteaccess.go index f2669b8..bf0e2bc 100644 --- a/internal/server/instituteaccess.go +++ b/internal/server/instituteaccess.go @@ -1,6 +1,7 @@ package server import ( + "errors" "fmt" "github.com/eduvpn/eduvpn-common/internal/oauth" @@ -21,6 +22,26 @@ type InstituteAccessServers struct { CurrentURL string `json:"current_url"` } +func (servers *Servers) SetInstituteAccess(server Server) error { + errorMessage := "failed setting institute access server" + base, baseErr := server.GetBase() + if baseErr != nil { + return &types.WrappedErrorMessage{Message: errorMessage, Err: baseErr} + } + + if base.Type != "institute_access" { + return &types.WrappedErrorMessage{Message: errorMessage, Err: errors.New("Not an institute access server")} + } + + if _, ok := servers.InstituteServers.Map[base.URL]; ok { + servers.InstituteServers.CurrentURL = base.URL + servers.IsType = InstituteAccessServerType + } else { + return &types.WrappedErrorMessage{Message: errorMessage, Err: errors.New("No such institute access server")} + } + return nil +} + func (servers *Servers) GetInstituteAccess(url string) (*InstituteAccessServer, error) { if server, ok := servers.InstituteServers.Map[url]; ok { return server, nil -- cgit v1.2.3