From b8a5b7b405d2c081ee8aab90811d9c33fd05bee3 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sun, 6 Jun 2021 11:40:27 -0400 Subject: [PATCH] updateRepository: fix visibility updates --- api/graph/schema.resolvers.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/api/graph/schema.resolvers.go b/api/graph/schema.resolvers.go index a7c5831..f0f24be 100644 --- a/api/graph/schema.resolvers.go +++ b/api/graph/schema.resolvers.go @@ -216,6 +216,24 @@ func (r *mutationResolver) UpdateRepository(ctx context.Context, id int, input m if err := database.WithTx(ctx, nil, func(tx *sql.Tx) error { user := auth.ForContext(ctx) + if val, ok := input["visibility"]; ok { + delete(input, "visibility") + vis := model.Visibility(val.(string)) + if !vis.IsValid() { + return fmt.Errorf("Invalid visibility '%s'", val) + } + switch vis { + case model.VisibilityPublic: + input["visibility"] = "public" + case model.VisibilityUnlisted: + input["visibility"] = "unlisted" + case model.VisibilityPrivate: + input["visibility"] = "private" + default: + panic("Invariant broken; unknown visibility") + } + } + query := database.Apply(&repo, input). Where(`id = ?`, id). Where(`owner_id = ?`, auth.ForContext(ctx).UserID). -- 2.38.4