query

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2025 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Operator

type Operator string

Operator represents query operators

const (
	// Comparison operators
	OpEquals             Operator = "="
	OpNotEquals          Operator = "!="
	OpLessThan           Operator = "<"
	OpLessThanOrEqual    Operator = "<="
	OpGreaterThan        Operator = ">"
	OpGreaterThanOrEqual Operator = ">="
	OpStartsWith         Operator = "STARTSWITH"
	OpEndsWith           Operator = "ENDSWITH"
	OpContains           Operator = "CONTAINS"
	OpDoesNotContain     Operator = "DOESNOTCONTAIN"
	OpIn                 Operator = "IN"
	OpNotIn              Operator = "NOT IN"
	OpIsEmpty            Operator = "ISEMPTY"
	OpIsNotEmpty         Operator = "ISNOTEMPTY"
	OpBetween            Operator = "BETWEEN"
	OpSameAs             Operator = "SAMEAS"
	OpNotSameAs          Operator = "NSAMEAS"
	OpLike               Operator = "LIKE"
	OpNotLike            Operator = "NOTLIKE"

	// Date/time operators
	OpOn        Operator = "ON"
	OpNotOn     Operator = "NOTON"
	OpAfter     Operator = ">"
	OpBefore    Operator = "<"
	OpToday     Operator = "TODAY"
	OpYesterday Operator = "YESTERDAY"
	OpThisWeek  Operator = "THISWEEK"
	OpLastWeek  Operator = "LASTWEEK"
	OpThisMonth Operator = "THISMONTH"
	OpLastMonth Operator = "LASTMONTH"
	OpThisYear  Operator = "THISYEAR"
	OpLastYear  Operator = "LASTYEAR"

	// Logical operators
	OpAnd      Operator = "^"
	OpOr       Operator = "^OR"
	OpNot      Operator = "^NOT"
	OpNewQuery Operator = "^NQ"
)

type OrderDirection

type OrderDirection string

OrderDirection represents sort order

const (
	OrderAsc  OrderDirection = "ASC"
	OrderDesc OrderDirection = "DESC"
)

type QueryBuilder

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

QueryBuilder provides a fluent interface for building ServiceNow encoded queries

func ActiveRecords

func ActiveRecords() *QueryBuilder

ActiveRecords creates a query for active records

func ByAssignedTo

func ByAssignedTo(userID string) *QueryBuilder

ByAssignedTo creates a query for records assigned to specific user

func ByPriority

func ByPriority(priority interface{}) *QueryBuilder

ByPriority creates a query for records with specific priority

func ByState

func ByState(state interface{}) *QueryBuilder

ByState creates a query for records with specific state

func InactiveRecords

func InactiveRecords() *QueryBuilder

InactiveRecords creates a query for inactive records

func New

func New() *QueryBuilder

New creates a new QueryBuilder instance

func RecentRecords

func RecentRecords(days int) *QueryBuilder

RecentRecords creates a query for records created in the last N days

func SearchText

func SearchText(searchTerm string, fields ...string) *QueryBuilder

SearchText creates a query that searches across multiple text fields

func UpdatedSince

func UpdatedSince(date string) *QueryBuilder

UpdatedSince creates a query for records updated since a specific date

func (*QueryBuilder) And

func (q *QueryBuilder) And() *QueryBuilder

And adds an AND operator (this is the default behavior)

func (*QueryBuilder) Between

func (q *QueryBuilder) Between(field string, start, end interface{}) *QueryBuilder

Between checks if field value is between two values

func (*QueryBuilder) Build

func (q *QueryBuilder) Build() map[string]string

Build constructs the final query parameters map

func (*QueryBuilder) BuildQuery

func (q *QueryBuilder) BuildQuery() string

BuildQuery returns just the encoded query string

func (*QueryBuilder) Clone

func (q *QueryBuilder) Clone() *QueryBuilder

Clone creates a copy of the query builder

func (*QueryBuilder) Contains

func (q *QueryBuilder) Contains(field string, value interface{}) *QueryBuilder

Contains is a convenience method for contains comparison

func (*QueryBuilder) EndsWith

func (q *QueryBuilder) EndsWith(field string, value interface{}) *QueryBuilder

EndsWith is a convenience method for ends with comparison

func (*QueryBuilder) Equals

func (q *QueryBuilder) Equals(field string, value interface{}) *QueryBuilder

Equals is a convenience method for equality comparison

func (*QueryBuilder) Fields

func (q *QueryBuilder) Fields(fields ...string) *QueryBuilder

Fields specifies which fields to return

func (*QueryBuilder) GreaterThan

func (q *QueryBuilder) GreaterThan(field string, value interface{}) *QueryBuilder

GreaterThan is a convenience method for greater than comparison

func (*QueryBuilder) In

func (q *QueryBuilder) In(field string, values []interface{}) *QueryBuilder

In checks if field value is in the provided list

func (*QueryBuilder) IsEmpty

func (q *QueryBuilder) IsEmpty(field string) *QueryBuilder

IsEmpty checks if field is empty

func (*QueryBuilder) IsNotEmpty

func (q *QueryBuilder) IsNotEmpty(field string) *QueryBuilder

IsNotEmpty checks if field is not empty

func (*QueryBuilder) LessThan

func (q *QueryBuilder) LessThan(field string, value interface{}) *QueryBuilder

LessThan is a convenience method for less than comparison

func (*QueryBuilder) Limit

func (q *QueryBuilder) Limit(limit int) *QueryBuilder

Limit sets the maximum number of records to return

func (*QueryBuilder) NewQuery

func (q *QueryBuilder) NewQuery() *QueryBuilder

NewQuery starts a new query group

func (*QueryBuilder) Not

func (q *QueryBuilder) Not() *QueryBuilder

Not adds a NOT operator

func (*QueryBuilder) NotEquals

func (q *QueryBuilder) NotEquals(field string, value interface{}) *QueryBuilder

NotEquals is a convenience method for inequality comparison

func (*QueryBuilder) NotIn

func (q *QueryBuilder) NotIn(field string, values []interface{}) *QueryBuilder

NotIn checks if field value is not in the provided list

func (*QueryBuilder) Offset

func (q *QueryBuilder) Offset(offset int) *QueryBuilder

Offset sets the number of records to skip

func (*QueryBuilder) Or

func (q *QueryBuilder) Or() *QueryBuilder

Or adds an OR operator

func (*QueryBuilder) OrderBy

func (q *QueryBuilder) OrderBy(field string, direction OrderDirection) *QueryBuilder

OrderBy adds ordering to the query

func (*QueryBuilder) OrderByAsc

func (q *QueryBuilder) OrderByAsc(field string) *QueryBuilder

OrderByAsc adds ascending order

func (*QueryBuilder) OrderByDesc

func (q *QueryBuilder) OrderByDesc(field string) *QueryBuilder

OrderByDesc adds descending order

func (*QueryBuilder) Reset

func (q *QueryBuilder) Reset() *QueryBuilder

Reset clears all conditions and settings

func (*QueryBuilder) StartsWith

func (q *QueryBuilder) StartsWith(field string, value interface{}) *QueryBuilder

StartsWith is a convenience method for starts with comparison

func (*QueryBuilder) String

func (q *QueryBuilder) String() string

String returns a human-readable representation of the query

func (*QueryBuilder) Where

func (q *QueryBuilder) Where(field string, operator Operator, value interface{}) *QueryBuilder

Where adds a basic condition to the query

type QuerySet

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

QuerySet provides a way to combine multiple queries

func NewQuerySet

func NewQuerySet() *QuerySet

NewQuerySet creates a new query set

func (*QuerySet) Add

func (qs *QuerySet) Add(query *QueryBuilder) *QuerySet

Add adds a query to the set

func (*QuerySet) Intersection

func (qs *QuerySet) Intersection() *QueryBuilder

Intersection combines all queries with AND

func (*QuerySet) Union

func (qs *QuerySet) Union() *QueryBuilder

Union combines all queries with OR

Jump to

Keyboard shortcuts

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