~edwargix/git.sr.ht

b8a5b7b405d2c081ee8aab90811d9c33fd05bee3 — Drew DeVault 3 years ago 50c5dc1
updateRepository: fix visibility updates
1 files changed, 18 insertions(+), 0 deletions(-)

M api/graph/schema.resolvers.go
M api/graph/schema.resolvers.go => api/graph/schema.resolvers.go +18 -0
@@ 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).