diff options
Diffstat (limited to 'vendor/github.com/olivere/elastic/script.go')
-rw-r--r-- | vendor/github.com/olivere/elastic/script.go | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/vendor/github.com/olivere/elastic/script.go b/vendor/github.com/olivere/elastic/script.go deleted file mode 100644 index 273473950..000000000 --- a/vendor/github.com/olivere/elastic/script.go +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2012-present Oliver Eilhard. All rights reserved. -// Use of this source code is governed by a MIT-license. -// See http://olivere.mit-license.org/license.txt for details. - -package elastic - -import "errors" - -// Script holds all the paramaters necessary to compile or find in cache -// and then execute a script. -// -// See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/modules-scripting.html -// for details of scripting. -type Script struct { - script string - typ string - lang string - params map[string]interface{} -} - -// NewScript creates and initializes a new Script. -func NewScript(script string) *Script { - return &Script{ - script: script, - typ: "inline", - params: make(map[string]interface{}), - } -} - -// NewScriptInline creates and initializes a new inline script, i.e. code. -func NewScriptInline(script string) *Script { - return NewScript(script).Type("inline") -} - -// NewScriptStored creates and initializes a new stored script. -func NewScriptStored(script string) *Script { - return NewScript(script).Type("id") -} - -// Script is either the cache key of the script to be compiled/executed -// or the actual script source code for inline scripts. For indexed -// scripts this is the id used in the request. For file scripts this is -// the file name. -func (s *Script) Script(script string) *Script { - s.script = script - return s -} - -// Type sets the type of script: "inline" or "id". -func (s *Script) Type(typ string) *Script { - s.typ = typ - return s -} - -// Lang sets the language of the script. Permitted values are "groovy", -// "expression", "mustache", "mvel" (default), "javascript", "python". -// To use certain languages, you need to configure your server and/or -// add plugins. See https://www.elastic.co/guide/en/elasticsearch/reference/6.0/modules-scripting.html -// for details. -func (s *Script) Lang(lang string) *Script { - s.lang = lang - return s -} - -// Param adds a key/value pair to the parameters that this script will be executed with. -func (s *Script) Param(name string, value interface{}) *Script { - if s.params == nil { - s.params = make(map[string]interface{}) - } - s.params[name] = value - return s -} - -// Params sets the map of parameters this script will be executed with. -func (s *Script) Params(params map[string]interface{}) *Script { - s.params = params - return s -} - -// Source returns the JSON serializable data for this Script. -func (s *Script) Source() (interface{}, error) { - if s.typ == "" && s.lang == "" && len(s.params) == 0 { - return s.script, nil - } - source := make(map[string]interface{}) - // Beginning with 6.0, the type can only be "source" or "id" - if s.typ == "" || s.typ == "inline" { - source["source"] = s.script - } else { - source["id"] = s.script - } - if s.lang != "" { - source["lang"] = s.lang - } - if len(s.params) > 0 { - source["params"] = s.params - } - return source, nil -} - -// -- Script Field -- - -// ScriptField is a single script field. -type ScriptField struct { - FieldName string // name of the field - - script *Script -} - -// NewScriptField creates and initializes a new ScriptField. -func NewScriptField(fieldName string, script *Script) *ScriptField { - return &ScriptField{FieldName: fieldName, script: script} -} - -// Source returns the serializable JSON for the ScriptField. -func (f *ScriptField) Source() (interface{}, error) { - if f.script == nil { - return nil, errors.New("ScriptField expects script") - } - source := make(map[string]interface{}) - src, err := f.script.Source() - if err != nil { - return nil, err - } - source["script"] = src - return source, nil -} |