From 173b8a2d524a9ddf840a01b7407d8e7f6582c65d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20=C5=A0alata?= Date: Thu, 5 Aug 2021 14:28:20 +0200 Subject: [PATCH] Update the client if it already exists --- cmd/register.go | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/cmd/register.go b/cmd/register.go index a037e55..de26f63 100644 --- a/cmd/register.go +++ b/cmd/register.go @@ -35,7 +35,7 @@ import ( var registerCmd = &cobra.Command{ Use: "register", Short: "registers DEX client", - Long: `Registers dex client fot openID purposes`, + Long: `Registers dex client fot openID purposes`, Run: func(cmd *cobra.Command, args []string) { registerDexClient() }, @@ -100,7 +100,7 @@ func newDexClient(hostAndPort string) (api.DexClient, error) { }) } else { transportCreds = credentials.NewTLS(&tls.Config{ - RootCAs: serverCertPool, + RootCAs: serverCertPool, }) } @@ -126,7 +126,22 @@ func registerDexClient() { }, } - if _, err := client.CreateClient(context.TODO(), req); err != nil { + createClientResponse, err := client.CreateClient(context.TODO(), req) + if err != nil { log.Fatalf("failed creating oauth2 client: %v", err) } -} \ No newline at end of file + + if !createClientResponse.AlreadyExists { + return + } + + updateReq := &api.UpdateClientReq{ + Id: req.Client.Id, + Name: req.Client.Name, + RedirectUris: req.Client.RedirectUris, + } + + if _, err := client.UpdateClient(context.TODO(), updateReq); err != nil { + log.Fatalf("failed updating oauth2 client %v", err) + } +}