feat: do not use internal type

This commit is contained in:
Daniel Thomas 2025-07-28 15:40:41 +02:00
parent 320117980e
commit fb4e385891
4 changed files with 47 additions and 47 deletions

View File

@ -22,7 +22,7 @@ type (
Page int `json:"page"`
PageSize int `json:"pageSize"`
RedirectType redirectstore.RedirectionType `json:"type,omitempty"`
Sort redirectrepository.Sort `json:"sort"`
Sort redirectstore.Sort `json:"sort"`
}
// SearchHandlerFn handler
SearchHandlerFn func(ctx context.Context, l *zap.Logger, qry Search) (*redirectstore.PaginatedResult, error)
@ -54,7 +54,7 @@ func SearchHandler(repo redirectrepository.RedirectsDefinitionRepository) Search
}
// Create pagination struct
pagination := redirectrepository.Pagination{Page: page, PageSize: pageSize}
pagination := redirectstore.Pagination{Page: page, PageSize: pageSize}
return repo.FindMany(ctx, string(qry.Source), string(qry.Dimension), qry.RedirectType, qry.ActiveState, pagination, qry.Sort)
}

View File

@ -14,46 +14,10 @@ import (
"go.uber.org/zap"
)
type Pagination struct {
Page int `json:"page"`
PageSize int `json:"pageSize"`
}
type SortField string
const (
SortFieldSource SortField = "source"
SortFieldUpdated SortField = "updated"
SortFieldLastUpdatedBy SortField = "lastUpdatedBy"
)
type Direction string
const (
DirectionAscending Direction = "ascending"
DirectionDescending Direction = "descending"
)
type Sort struct {
Field SortField `json:"field"`
Direction Direction `json:"direction"`
}
func (d Direction) GetSortValue() int {
switch d {
case DirectionAscending:
return 1
case DirectionDescending:
return -1
default:
return 1
}
}
type (
RedirectsDefinitionRepository interface {
FindOne(ctx context.Context, id, source string) (*redirectstore.RedirectDefinition, error)
FindMany(ctx context.Context, source, dimension string, redirectType redirectstore.RedirectionType, activeState redirectstore.ActiveStateType, pagination Pagination, sort Sort) (*redirectstore.PaginatedResult, error)
FindMany(ctx context.Context, source, dimension string, redirectType redirectstore.RedirectionType, activeState redirectstore.ActiveStateType, pagination redirectstore.Pagination, sort redirectstore.Sort) (*redirectstore.PaginatedResult, error)
FindAll(ctx context.Context, onlyActive bool) (defs map[redirectstore.Dimension]map[redirectstore.RedirectSource]*redirectstore.RedirectDefinition, err error)
FindAllByDimension(ctx context.Context, dimension redirectstore.Dimension, onlyActive bool) (map[redirectstore.RedirectSource]*redirectstore.RedirectDefinition, error)
Insert(ctx context.Context, def *redirectstore.RedirectDefinition) error
@ -89,18 +53,18 @@ func NewBaseRedirectsDefinitionRepository(l *zap.Logger, persistor *keelmongo.Pe
},
mongo.IndexModel{
Keys: bson.D{
{Key: string(SortFieldUpdated), Value: 1},
{Key: string(redirectstore.SortFieldUpdated), Value: 1},
},
},
mongo.IndexModel{
Keys: bson.D{
{Key: string(SortFieldLastUpdatedBy), Value: 1},
{Key: string(redirectstore.SortFieldLastUpdatedBy), Value: 1},
},
},
// Index for 'source' field (optional for search optimization)
mongo.IndexModel{
Keys: bson.D{
{Key: string(SortFieldSource), Value: 1},
{Key: string(redirectstore.SortFieldSource), Value: 1},
},
},
),
@ -128,8 +92,8 @@ func (rs BaseRedirectsDefinitionRepository) FindMany(
source, dimension string,
redirectType redirectstore.RedirectionType,
activeState redirectstore.ActiveStateType,
pagination Pagination,
sort Sort,
pagination redirectstore.Pagination,
sort redirectstore.Sort,
) (*redirectstore.PaginatedResult, error) {
// Validate pagination
if pagination.Page < 1 {
@ -170,7 +134,7 @@ func (rs BaseRedirectsDefinitionRepository) FindMany(
// Sorting settings
sortField := sort.Field
if sortField == "" {
sortField = SortFieldSource // Default sort field
sortField = redirectstore.SortFieldSource // Default sort field
}
opts.SetSort(bson.D{
{Key: string(sortField), Value: sort.Direction.GetSortValue()},

View File

@ -8,7 +8,6 @@ import (
"github.com/foomo/contentserver/content"
redirectcommand "github.com/foomo/redirects/v2/domain/redirectdefinition/command"
redirectquery "github.com/foomo/redirects/v2/domain/redirectdefinition/query"
redirectrepository "github.com/foomo/redirects/v2/domain/redirectdefinition/repository"
redirectstore "github.com/foomo/redirects/v2/domain/redirectdefinition/store"
"go.uber.org/zap"
)
@ -20,7 +19,7 @@ type SearchParams struct {
PageSize int `json:"pageSize"`
RedirectType redirectstore.RedirectionType `json:"type,omitempty"`
ActiveState redirectstore.ActiveStateType `json:"activeState,omitempty"`
Sort redirectrepository.Sort `json:"sort"`
Sort redirectstore.Sort `json:"sort"`
}
type Service struct {

View File

@ -0,0 +1,37 @@
package redirectstore
type Pagination struct {
Page int `json:"page"`
PageSize int `json:"pageSize"`
}
type SortField string
const (
SortFieldSource SortField = "source"
SortFieldUpdated SortField = "updated"
SortFieldLastUpdatedBy SortField = "lastUpdatedBy"
)
type Direction string
const (
DirectionAscending Direction = "ascending"
DirectionDescending Direction = "descending"
)
type Sort struct {
Field SortField `json:"field"`
Direction Direction `json:"direction"`
}
func (d Direction) GetSortValue() int {
switch d {
case DirectionAscending:
return 1
case DirectionDescending:
return -1
default:
return 1
}
}