Documentation
¶
Overview ¶
Package attachment provides filtering for Linear attachments.
The package implements 9 filter types:
- 2 date filters: created-at, updated-at
- 3 entity filters: id, creator, source-type
- 4 text filters: title, subtitle, url
All filters follow the per-filter file pattern and are registered in the Filters map for use with FromFlags.
Index ¶
- Variables
- func ApplyCreator(ctx context.Context, cmd *cobra.Command, b *FilterBuilder) error
- func ApplySourceType(ctx context.Context, cmd *cobra.Command, b *FilterBuilder) error
- func ApplySubtitle(ctx context.Context, cmd *cobra.Command, b *FilterBuilder) error
- func ApplyTitle(ctx context.Context, cmd *cobra.Command, b *FilterBuilder) error
- func ApplyURL(ctx context.Context, cmd *cobra.Command, b *FilterBuilder) error
- type FilterBuilder
- func (b *FilterBuilder) Build() *intgraphql.AttachmentFilter
- func (b *FilterBuilder) CreatedAtComparator() *intgraphql.DateComparator
- func (b *FilterBuilder) Filter() *intgraphql.AttachmentFilter
- func (b *FilterBuilder) FromFlags(ctx context.Context, cmd *cobra.Command) error
- func (b *FilterBuilder) Parser() dateparser.Parser
- func (b *FilterBuilder) Resolver() *resolver.Resolver
- func (b *FilterBuilder) SetID(comp *intgraphql.IDComparator)
- func (b *FilterBuilder) UpdatedAtComparator() *intgraphql.DateComparator
- type FilterFunc
Constants ¶
This section is empty.
Variables ¶
var Filters = map[string]FilterFunc{ "created-at": common.ApplyCreatedAt[*FilterBuilder], "updated-at": common.ApplyUpdatedAt[*FilterBuilder], "id": common.ApplyID[*FilterBuilder], "creator": ApplyCreator, "source-type": ApplySourceType, "title": ApplyTitle, "subtitle": ApplySubtitle, "url": ApplyURL, }
Filters maps filter names to their apply functions. Uses shared filters from common package where applicable.
Functions ¶
func ApplyCreator ¶
ApplyCreator handles --creator flag.
func ApplySourceType ¶
ApplySourceType handles --source-type flag. Valid values: uploaded, url, github, slack
func ApplySubtitle ¶
ApplySubtitle handles --subtitle flag (case-insensitive contains).
func ApplyTitle ¶
ApplyTitle handles --title flag (case-insensitive contains).
Types ¶
type FilterBuilder ¶
type FilterBuilder struct {
// contains filtered or unexported fields
}
FilterBuilder constructs AttachmentFilter from CLI flags.
func NewFilterBuilder ¶
func NewFilterBuilder(res *resolver.Resolver) *FilterBuilder
NewFilterBuilder creates a FilterBuilder with the given resolver.
func (*FilterBuilder) Build ¶
func (b *FilterBuilder) Build() *intgraphql.AttachmentFilter
Build returns the filter if any fields are set, nil otherwise.
func (*FilterBuilder) CreatedAtComparator ¶
func (b *FilterBuilder) CreatedAtComparator() *intgraphql.DateComparator
CreatedAtComparator returns or creates the CreatedAt comparator.
func (*FilterBuilder) Filter ¶
func (b *FilterBuilder) Filter() *intgraphql.AttachmentFilter
Filter returns the underlying AttachmentFilter.
func (*FilterBuilder) Parser ¶
func (b *FilterBuilder) Parser() dateparser.Parser
Parser returns the date parser.
func (*FilterBuilder) Resolver ¶
func (b *FilterBuilder) Resolver() *resolver.Resolver
Resolver returns the resolver for entity lookups.
func (*FilterBuilder) SetID ¶
func (b *FilterBuilder) SetID(comp *intgraphql.IDComparator)
SetID sets the ID comparator. Implements common.IDFilterable.
func (*FilterBuilder) UpdatedAtComparator ¶
func (b *FilterBuilder) UpdatedAtComparator() *intgraphql.DateComparator
UpdatedAtComparator returns or creates the UpdatedAt comparator.
type FilterFunc ¶
FilterFunc applies a filter based on command flags.