Files
sendico/api/pkg/db/repository/builders.go
Stephan D d367dddbbd
Some checks failed
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/fx/1 Pipeline failed
ci/woodpecker/push/nats Pipeline was successful
ci/woodpecker/push/fx/2 Pipeline failed
fx build fix
2025-11-08 00:40:01 +01:00

270 lines
6.4 KiB
Go

package repository
import (
"github.com/tech/sendico/pkg/db/internal/mongo/repositoryimp/builderimp"
"github.com/tech/sendico/pkg/db/repository/builder"
"github.com/tech/sendico/pkg/db/storable"
"github.com/tech/sendico/pkg/model"
"go.mongodb.org/mongo-driver/bson/primitive"
)
func Query() builder.Query {
return builderimp.NewQueryImp()
}
func Filter(field string, value any) builder.Query {
return Query().Filter(Field(field), value)
}
func Field(baseName string) builder.Field {
return builderimp.NewFieldImp(baseName)
}
func Ref(field builder.Field) builder.Field {
return builderimp.NewRefFieldImp(field)
}
func RootRef() builder.Field {
return builderimp.NewRootRef()
}
func RemoveRef() builder.Field {
return builderimp.NewRemoveRef()
}
func Pipeline() builder.Pipeline {
return builderimp.NewPipelineImp()
}
func IDField() builder.Field {
return Field(storable.IDField)
}
func NameField() builder.Field {
return Field(model.NameField)
}
func DescrtiptionField() builder.Field {
return Field(model.DescriptionField)
}
func IsArchivedField() builder.Field {
return Field(storable.IsArchivedField)
}
func IDFilter(ref primitive.ObjectID) builder.Query {
return Query().Filter(IDField(), ref)
}
func ArchivedFilter() builder.Query {
return IsArchivedFilter(true)
}
func NotArchivedFilter() builder.Query {
return IsArchivedFilter(false)
}
func IsArchivedFilter(isArchived bool) builder.Query {
return Query().Filter(IsArchivedField(), isArchived)
}
func OrgField() builder.Field {
return Field(storable.OrganizationRefField)
}
func OrgFilter(ref primitive.ObjectID) builder.Query {
return Query().Filter(OrgField(), ref)
}
func ProjectField() builder.Field {
return Field("projectRef")
}
func ProjectFilter(ref primitive.ObjectID) builder.Query {
return Query().Filter(ProjectField(), ref)
}
func AccountField() builder.Field {
return Field(model.AccountRefField)
}
func AccountFilter(ref primitive.ObjectID) builder.Query {
return Query().Filter(AccountField(), ref)
}
func StatusRefField() builder.Field {
return Field("statusRef")
}
func StatusRefFilter(ref primitive.ObjectID) builder.Query {
return Query().Filter(StatusRefField(), ref)
}
func PriorityRefField() builder.Field {
return Field("priorityRef")
}
func PriorityRefFilter(ref primitive.ObjectID) builder.Query {
return Query().Filter(PriorityRefField(), ref)
}
func IndexField() builder.Field {
return Field("index")
}
func IndexFilter(index int) builder.Query {
return Query().Filter(IndexField(), index)
}
func IndexOpFilter(index int, operation builder.MongoOperation) builder.Query {
return Query().Comparison(IndexField(), operation, index)
}
func Patch() builder.Patch {
return builderimp.NewPatchImp()
}
func Accumulator(operator builder.MongoOperation, value any) builder.Accumulator {
return builderimp.NewAccumulator(operator, value)
}
func GroupAccumulator(field builder.Field, acc builder.Accumulator) builder.GroupAccumulator {
return builderimp.NewGroupAccumulator(field, acc)
}
func Literal(value any) builder.Expression {
return builderimp.NewLiteralExpression(value)
}
func Projection(alias builder.Alias) builder.Projection {
return builderimp.NewAliasProjection(alias)
}
func IncludeField(field builder.Field) builder.Projection {
return builderimp.IncludeField(field)
}
func ExcludeField(field builder.Field) builder.Projection {
return builderimp.ExcludeField(field)
}
func ProjectionExpr(field builder.Field, expr builder.Expression) builder.Projection {
return builderimp.NewProjectionExpr(field, expr)
}
func NullAlias(lhs builder.Field) builder.Alias {
return builderimp.NewNullAlias(lhs)
}
func SimpleAlias(lhs, rhs builder.Field) builder.Alias {
return builderimp.NewSimpleAlias(lhs, rhs)
}
func ComplexAlias(lhs builder.Field, rhs []builder.Alias) builder.Alias {
return builderimp.NewComplexAlias(lhs, rhs)
}
func Aliases(aliases ...builder.Alias) builder.Alias {
return builderimp.NewAliases(aliases...)
}
func AddToSet(value builder.Expression) builder.Expression {
return builderimp.AddToSet(value)
}
func Size(value builder.Expression) builder.Expression {
return builderimp.Size(value)
}
func InRef(value builder.Field) builder.Expression {
return builderimp.InRef(value)
}
func In(values ...any) builder.Expression {
return builderimp.In(values)
}
func Cond(condition builder.Expression, ifTrue, ifFalse any) builder.Expression {
return builderimp.NewCond(condition, ifTrue, ifFalse)
}
func And(exprs ...builder.Expression) builder.Expression {
return builderimp.NewAnd(exprs...)
}
func Or(exprs ...builder.Expression) builder.Expression {
return builderimp.NewOr(exprs...)
}
func Type(expr builder.Expression) builder.Expression {
return builderimp.NewType(expr)
}
func Not(expression builder.Expression) builder.Expression {
return builderimp.NewNot(expression)
}
func Sum(expression builder.Expression) builder.Expression {
return builderimp.NewSum(expression)
}
func Assign(field builder.Field, expression builder.Expression) builder.Projection {
return builderimp.NewAssignment(field, expression)
}
func SetUnion(exprs ...builder.Expression) builder.Expression {
return builderimp.NewSetUnion(exprs...)
}
func Eq(left, right builder.Expression) builder.Expression {
return builderimp.Eq(left, right)
}
func Gt(left, right builder.Expression) builder.Expression {
return builderimp.Gt(left, right)
}
func Lt(left, right builder.Expression) builder.Expression {
return builderimp.NewLt(left, right)
}
func Array(expressions ...builder.Expression) builder.Array {
return builderimp.NewArray(expressions...)
}
func IfNull(cond, replacement builder.Expression) builder.Expression {
return builderimp.NewIfNull(cond, replacement)
}
func Each(exprs ...builder.Expression) builder.Expression {
return builderimp.NewEach(exprs...)
}
func Push(expression builder.Expression) builder.Expression {
return builderimp.NewPush(expression)
}
func Min(expression builder.Expression) builder.Expression {
return builderimp.NewMin(expression)
}
func Ne(left, right builder.Expression) builder.Expression {
return builderimp.Ne(left, right)
}
func Compute(field builder.Field, expression builder.Expression) builder.Expression {
return builderimp.NewCompute(field, expression)
}
func First(expr builder.Expression) builder.Expression {
return builderimp.First(expr)
}
func Value(value any) builder.Value {
return builderimp.NewValue(value)
}
func Exists(field builder.Field, exists bool) builder.Query {
return Query().Comparison(field, builder.Exists, exists)
}