mirror of
https://github.com/harness/drone.git
synced 2025-05-17 09:30:00 +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,
|
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
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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 {
|
||||||
|
@ -86,8 +86,8 @@ type GitspaceFilter struct {
|
|||||||
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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user