fix: [CDE-438]: modify filter logic for marked-for-deletion field (#2935)

* modify delete api
* modify filter logic for marked-for-deletion field
This commit is contained in:
Deepak Bhatt 2024-11-06 08:06:56 +00:00 committed by Harness
parent 0871584eaa
commit f79d785f60
5 changed files with 20 additions and 13 deletions

View File

@ -32,8 +32,12 @@ func (c *Controller) ListAllGitspaces( // nolint:gocognit
ctx context.Context, ctx context.Context,
session *auth.Session, session *auth.Session,
) ([]*types.GitspaceConfig, error) { ) ([]*types.GitspaceConfig, error) {
deleted := false
markedForDeletion := false
filter := &types.GitspaceFilter{ filter := &types.GitspaceFilter{
GitspaceInstanceFilter: types.GitspaceInstanceFilter{UserIdentifier: session.Principal.UID}, GitspaceInstanceFilter: types.GitspaceInstanceFilter{UserIdentifier: session.Principal.UID},
Deleted: &deleted,
MarkedForDeletion: &markedForDeletion,
} }
var result []*types.GitspaceConfig var result []*types.GitspaceConfig

View File

@ -41,7 +41,10 @@ func (c *Controller) ListGitspaces(
filter.UserIdentifier = session.Principal.UID filter.UserIdentifier = session.Principal.UID
filter.SpaceIDs = []int64{space.ID} filter.SpaceIDs = []int64{space.ID}
filter.IncludeMarkedForDeletion = false deleted := false
markedForDeletion := false
filter.Deleted = &deleted
filter.MarkedForDeletion = &markedForDeletion
return c.gitspaceSvc.ListGitspacesForSpace(ctx, space, filter) return c.gitspaceSvc.ListGitspacesForSpace(ctx, space, filter)
} }

View File

@ -139,7 +139,7 @@ func (c *Collector) Handle(ctx context.Context, _ string, _ job.ProgressReporter
} }
// total gitspaces (configs) in the system // total gitspaces (configs) in the system
totalGitspaces, err := c.gitspaceConfigStore.Count(ctx, &types.GitspaceFilter{IncludeDeleted: true}) totalGitspaces, err := c.gitspaceConfigStore.Count(ctx, &types.GitspaceFilter{})
if err != nil { if err != nil {
return "", fmt.Errorf("failed to get gitspace count: %w", err) return "", fmt.Errorf("failed to get gitspace count: %w", err)
} }

View File

@ -311,16 +311,16 @@ func getLatestInstanceQuery() string {
} }
func addGitspaceFilter(stmt squirrel.SelectBuilder, filter *types.GitspaceFilter) squirrel.SelectBuilder { func addGitspaceFilter(stmt squirrel.SelectBuilder, filter *types.GitspaceFilter) squirrel.SelectBuilder {
if !filter.IncludeDeleted { if filter.Deleted != nil {
stmt = stmt.Where(squirrel.Eq{"gconf_is_deleted": false}) stmt = stmt.Where(squirrel.Eq{"gconf_is_deleted": filter.Deleted})
} }
if filter.Owner == enum.GitspaceOwnerSelf && filter.UserIdentifier != "" { if filter.Owner == enum.GitspaceOwnerSelf && filter.UserIdentifier != "" {
stmt = stmt.Where(squirrel.Eq{"gconf_user_uid": filter.UserIdentifier}) stmt = stmt.Where(squirrel.Eq{"gconf_user_uid": filter.UserIdentifier})
} }
if !filter.IncludeMarkedForDeletion { if filter.MarkedForDeletion != nil {
stmt = stmt.Where(squirrel.Eq{"gconf_is_marked_for_deletion": false}) stmt = stmt.Where(squirrel.Eq{"gconf_is_marked_for_deletion": filter.MarkedForDeletion})
} }
if len(filter.SpaceIDs) > 0 { if len(filter.SpaceIDs) > 0 {

View File

@ -81,13 +81,13 @@ type GitspaceInstance struct {
} }
type GitspaceFilter struct { type GitspaceFilter struct {
QueryFilter ListQueryFilter QueryFilter ListQueryFilter
Sort enum.GitspaceSort `json:"sort"` Sort enum.GitspaceSort `json:"sort"`
Order enum.Order `json:"order"` Order enum.Order `json:"order"`
Owner enum.GitspaceOwner Owner enum.GitspaceOwner
GitspaceFilterStates []enum.GitspaceFilterState GitspaceFilterStates []enum.GitspaceFilterState
IncludeDeleted bool Deleted *bool // not nil when we want to add this filter
IncludeMarkedForDeletion bool MarkedForDeletion *bool // not nil when we want to add this filter
GitspaceInstanceFilter GitspaceInstanceFilter
} }