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,
session *auth.Session,
) ([]*types.GitspaceConfig, error) {
deleted := false
markedForDeletion := false
filter := &types.GitspaceFilter{
GitspaceInstanceFilter: types.GitspaceInstanceFilter{UserIdentifier: session.Principal.UID},
Deleted: &deleted,
MarkedForDeletion: &markedForDeletion,
}
var result []*types.GitspaceConfig

View File

@ -41,7 +41,10 @@ func (c *Controller) ListGitspaces(
filter.UserIdentifier = session.Principal.UID
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)
}

View File

@ -139,7 +139,7 @@ func (c *Collector) Handle(ctx context.Context, _ string, _ job.ProgressReporter
}
// 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 {
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 {
if !filter.IncludeDeleted {
stmt = stmt.Where(squirrel.Eq{"gconf_is_deleted": false})
if filter.Deleted != nil {
stmt = stmt.Where(squirrel.Eq{"gconf_is_deleted": filter.Deleted})
}
if filter.Owner == enum.GitspaceOwnerSelf && filter.UserIdentifier != "" {
stmt = stmt.Where(squirrel.Eq{"gconf_user_uid": filter.UserIdentifier})
}
if !filter.IncludeMarkedForDeletion {
stmt = stmt.Where(squirrel.Eq{"gconf_is_marked_for_deletion": false})
if filter.MarkedForDeletion != nil {
stmt = stmt.Where(squirrel.Eq{"gconf_is_marked_for_deletion": filter.MarkedForDeletion})
}
if len(filter.SpaceIDs) > 0 {

View File

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