resolvers

package
v0.15.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 18, 2023 License: MIT Imports: 13 Imported by: 54

Documentation

Overview

Package resolvers contains custom search.FieldResolver implementations.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type RecordFieldResolver

type RecordFieldResolver struct {
	// contains filtered or unexported fields
}

RecordFieldResolver defines a custom search resolver struct for managing Record model search fields.

Usually used together with `search.Provider`. Example:

resolver := resolvers.NewRecordFieldResolver(
    app.Dao(),
    myCollection,
    &models.RequestData{...},
    true,
)
provider := search.NewProvider(resolver)
...

func NewRecordFieldResolver

func NewRecordFieldResolver(
	dao *daos.Dao,
	baseCollection *models.Collection,
	requestData *models.RequestData,
	allowHiddenFields bool,
) *RecordFieldResolver

NewRecordFieldResolver creates and initializes a new `RecordFieldResolver`.

func (*RecordFieldResolver) Resolve

func (r *RecordFieldResolver) Resolve(fieldName string) (*search.ResolverResult, error)

Resolve implements `search.FieldResolver` interface.

Example of some resolvable fieldName formats:

id
someSelect.each
project.screen.status
@request.status
@request.query.filter
@request.headers.x_token
@request.auth.someRelation.name
@request.data.someRelation.name
@request.data.someField
@request.data.someSelect:each
@request.data.someField:isset
@collection.product.name

func (*RecordFieldResolver) UpdateQuery

func (r *RecordFieldResolver) UpdateQuery(query *dbx.SelectQuery) error

UpdateQuery implements `search.FieldResolver` interface.

Conditionally updates the provided search query based on the resolved fields (eg. dynamically joining relations).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL