From 093c58f006129c0e0dd6af02f72d67c9751fe8cf Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Mon, 17 Oct 2022 19:38:17 +0200 Subject: [PATCH] Display error when remote repositories can't be fetched --- gitlab.go | 8 ++++++-- ui/src/components/WorkRepository.svelte | 18 +++++++++++------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/gitlab.go b/gitlab.go index 1ed5410..d97653a 100644 --- a/gitlab.go +++ b/gitlab.go @@ -27,7 +27,7 @@ const ( var ( gitlabClientID = "" gitlabSecret = "" - gitlaboauth2Config oauth2.Config + gitlaboauth2Config *oauth2.Config gitlabToken func() *oauth2.Token ) @@ -41,7 +41,7 @@ func initializeGitLabOIDC(router *gin.Engine, authrouter *gin.RouterGroup, admin router.GET("/callback/gitlabcri/complete", GitLab_OAuth_complete) if gitlabClientID != "" && gitlabSecret != "" { - gitlaboauth2Config = oauth2.Config{ + gitlaboauth2Config = &oauth2.Config{ ClientID: gitlabClientID, ClientSecret: gitlabSecret, RedirectURL: oidcRedirectURL + baseURL + "/callback/gitlabcri/complete", @@ -243,6 +243,10 @@ func GitLab_GetMyRepositories(c *gin.Context) { }*/ func GitLab_getUsersRepositories(c context.Context, u *User) ([]*GitLabRepository, error) { + if gitlaboauth2Config == nil || gitlabToken == nil { + return nil, fmt.Errorf("the connection with GitLab is not setup yet") + } + client := gitlaboauth2Config.Client(c, gitlabToken()) req, err := http.NewRequest("GET", gitlabBaseURL+fmt.Sprintf("/api/v4/users/%s/projects?per_page=100", u.Login), nil) diff --git a/ui/src/components/WorkRepository.svelte b/ui/src/components/WorkRepository.svelte index 85a4e98..4c65995 100644 --- a/ui/src/components/WorkRepository.svelte +++ b/ui/src/components/WorkRepository.svelte @@ -165,14 +165,18 @@ {/each} + + {:catch err} +
+ {err.message} Veuillez réessyer dans quelques instants…
Si le problème persiste, contactez votre professeur. +
{/await} -