30 lines
942 B
Go
30 lines
942 B
Go
package auth
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/tech/sendico/pkg/db/repository"
|
|
"github.com/tech/sendico/pkg/db/repository/builder"
|
|
"github.com/tech/sendico/pkg/db/storable"
|
|
"github.com/tech/sendico/pkg/mlogger"
|
|
"github.com/tech/sendico/pkg/model"
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
// IndexableDB implements reordering with permission checking
|
|
type IndexableDB[T storable.Storable] interface {
|
|
// Reorder implements reordering with permission checking using EnforceBatch
|
|
Reorder(ctx context.Context, accountRef, objectRef primitive.ObjectID, newIndex int, filter builder.Query) error
|
|
}
|
|
|
|
// NewIndexableDB creates a new auth.IndexableDB instance
|
|
func NewIndexableDB[T storable.Storable](
|
|
repo repository.Repository,
|
|
logger mlogger.Logger,
|
|
enforcer Enforcer,
|
|
createEmpty func() T,
|
|
getIndexable func(T) *model.Indexable,
|
|
) IndexableDB[T] {
|
|
return newIndexableDBImp(repo, logger, enforcer, createEmpty, getIndexable)
|
|
}
|