From 9697ea01b79cde6c8901d7853dc0b414acf84fa7 Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Wed, 6 Sep 2023 15:55:26 +0200 Subject: Server: Have separate implementations for refreshing endpoints --- internal/server/institute/institute.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'internal/server/institute') diff --git a/internal/server/institute/institute.go b/internal/server/institute/institute.go index e0a52b7..46977ac 100644 --- a/internal/server/institute/institute.go +++ b/internal/server/institute/institute.go @@ -3,6 +3,7 @@ package institute import ( "context" + "github.com/eduvpn/eduvpn-common/internal/discovery" "github.com/eduvpn/eduvpn-common/internal/oauth" "github.com/eduvpn/eduvpn-common/internal/server/api" "github.com/eduvpn/eduvpn-common/internal/server/base" @@ -98,6 +99,27 @@ func (s *Server) NeedsLocation() bool { return false } +func (s *Server) RefreshEndpoints(ctx context.Context, _ *discovery.Discovery) error { + // Re-initialize the endpoints + b, err := s.Base() + if err != nil { + return err + } + + err = api.Endpoints(ctx, b) + if err != nil { + return err + } + + // update OAuth + auth := s.OAuth() + if auth != nil { + auth.BaseAuthorizationURL = b.Endpoints.API.V3.Authorization + auth.TokenURL = b.Endpoints.API.V3.Token + } + return nil +} + func (s *Server) Public() (interface{}, error) { return &server.Server{ DisplayName: s.Basic.DisplayName, -- cgit v1.2.3