Skip to content

Commit d521051

Browse files
authored
feat: set resource revision for connectors (#3868)
Signed-off-by: Nicholas Wiersma <nick@wiersma.co.za>
1 parent 6110149 commit d521051

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

server/api.go

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"errors"
77
"fmt"
88
"log/slog"
9+
"strconv"
910

1011
"golang.org/x/crypto/bcrypt"
1112

@@ -430,10 +431,11 @@ func (d dexAPI) CreateConnector(ctx context.Context, req *api.CreateConnectorReq
430431
}
431432

432433
c := storage.Connector{
433-
ID: req.Connector.Id,
434-
Name: req.Connector.Name,
435-
Type: req.Connector.Type,
436-
Config: req.Connector.Config,
434+
ID: req.Connector.Id,
435+
Name: req.Connector.Name,
436+
Type: req.Connector.Type,
437+
ResourceVersion: "1",
438+
Config: req.Connector.Config,
437439
}
438440
if err := d.s.CreateConnector(ctx, c); err != nil {
439441
if err == storage.ErrAlreadyExists {
@@ -446,7 +448,7 @@ func (d dexAPI) CreateConnector(ctx context.Context, req *api.CreateConnectorReq
446448
return &api.CreateConnectorResp{}, nil
447449
}
448450

449-
func (d dexAPI) UpdateConnector(ctx context.Context, req *api.UpdateConnectorReq) (*api.UpdateConnectorResp, error) {
451+
func (d dexAPI) UpdateConnector(_ context.Context, req *api.UpdateConnectorReq) (*api.UpdateConnectorResp, error) {
450452
if !featureflags.APIConnectorsCRUD.Enabled() {
451453
return nil, fmt.Errorf("%s feature flag is not enabled", featureflags.APIConnectorsCRUD.Name)
452454
}
@@ -476,6 +478,10 @@ func (d dexAPI) UpdateConnector(ctx context.Context, req *api.UpdateConnectorReq
476478
old.Config = req.NewConfig
477479
}
478480

481+
if rev, err := strconv.Atoi(defaultTo(old.ResourceVersion, "0")); err == nil {
482+
old.ResourceVersion = strconv.Itoa(rev + 1)
483+
}
484+
479485
return old, nil
480486
}
481487

@@ -536,3 +542,11 @@ func (d dexAPI) ListConnectors(ctx context.Context, req *api.ListConnectorReq) (
536542
Connectors: connectors,
537543
}, nil
538544
}
545+
546+
func defaultTo[T comparable](v, def T) T {
547+
var zeroT T
548+
if v == zeroT {
549+
return def
550+
}
551+
return v
552+
}

0 commit comments

Comments
 (0)