mirror of
https://github.com/harness/drone.git
synced 2025-05-17 01:20:13 +08:00
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:
parent
0871584eaa
commit
f79d785f60
@ -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
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user