From aec2dadbc8a2e66548a3d94de4c3f4e4795801ff Mon Sep 17 00:00:00 2001 From: nxtcoder17 Date: Wed, 25 Sep 2024 13:56:16 +0530 Subject: [PATCH] feat: text search on image name - search image registries, with empty query, returns 10 recent images --- apps/console/internal/app/graph/schema.resolvers.go | 9 ++++++--- apps/console/internal/domain/registry-image.go | 8 ++++++++ apps/console/internal/entities/registry-image.go | 1 + 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/apps/console/internal/app/graph/schema.resolvers.go b/apps/console/internal/app/graph/schema.resolvers.go index 1bb3a1eb0..5f8491f05 100644 --- a/apps/console/internal/app/graph/schema.resolvers.go +++ b/apps/console/internal/app/graph/schema.resolvers.go @@ -7,9 +7,10 @@ package graph import ( "context" "fmt" - "github.com/kloudlite/api/pkg/errors" "time" + "github.com/kloudlite/api/pkg/errors" + "github.com/kloudlite/api/apps/console/internal/app/graph/generated" "github.com/kloudlite/api/apps/console/internal/app/graph/model" "github.com/kloudlite/api/apps/console/internal/domain" @@ -1072,5 +1073,7 @@ func (r *Resolver) Mutation() generated.MutationResolver { return &mutationResol // Query returns generated.QueryResolver implementation. func (r *Resolver) Query() generated.QueryResolver { return &queryResolver{r} } -type mutationResolver struct{ *Resolver } -type queryResolver struct{ *Resolver } +type ( + mutationResolver struct{ *Resolver } + queryResolver struct{ *Resolver } +) diff --git a/apps/console/internal/domain/registry-image.go b/apps/console/internal/domain/registry-image.go index 8e77708c7..73c8c144b 100644 --- a/apps/console/internal/domain/registry-image.go +++ b/apps/console/internal/domain/registry-image.go @@ -105,6 +105,14 @@ func (d *domain) SearchRegistryImages(ctx ConsoleContext, query string) ([]*enti return nil, errors.NewE(err) } + if query == "" { + return d.registryImageRepo.Find(ctx, repos.Query{ + Filter: repos.Filter{}, + Sort: map[string]any{"_id": -1}, + Limit: fn.New(int64(10)), + }) + } + filters := repos.Filter{ fields.AccountName: ctx.AccountName, "$text": map[string]any{"$search": query}, diff --git a/apps/console/internal/entities/registry-image.go b/apps/console/internal/entities/registry-image.go index d22b7ced7..8de87d27c 100644 --- a/apps/console/internal/entities/registry-image.go +++ b/apps/console/internal/entities/registry-image.go @@ -39,6 +39,7 @@ var RegistryImageIndexes = []repos.IndexField{ Field: []repos.IndexKey{ {Key: fields.AccountName, Value: repos.IndexAsc}, {Key: fc.Metadata, Value: repos.IndexAsc, IsText: true}, + {Key: fc.RegistryImageImageName, Value: repos.IndexAsc, IsText: true}, }, }, }