Refactor plugin configuration (#511)

This commit is contained in:
andig 2020-12-10 12:00:13 +01:00 • committed by GitHub
parent 79e48ffeff
commit bd810bd89b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 724 additions and 618 deletions

View file

@ -12,8 +12,12 @@ type Javascript struct {
script string
}
func init() {
registry.Add("js", NewJavascriptProviderFromConfig)
}
// NewJavascriptProviderFromConfig creates a HTTP provider
func NewJavascriptProviderFromConfig(other map[string]interface{}) (*Javascript, error) {
func NewJavascriptProviderFromConfig(other map[string]interface{}) (IntProvider, error) {
cc := struct {
Script string
}{}
@ -34,62 +38,82 @@ func NewJavascriptProviderFromConfig(other map[string]interface{}) (*Javascript,
}
// FloatGetter parses float from request
func (p *Javascript) FloatGetter() (res float64, err error) {
v, err := p.vm.Eval(p.script)
if err == nil {
res, err = v.ToFloat()
}
func (p *Javascript) FloatGetter() func() (float64, error) {
return func() (res float64, err error) {
v, err := p.vm.Eval(p.script)
if err == nil {
res, err = v.ToFloat()
}
return res, err
return res, err
}
}
// IntGetter parses int64 from request
func (p *Javascript) IntGetter() (res int64, err error) {
v, err := p.vm.Eval(p.script)
if err == nil {
res, err = v.ToInteger()
}
func (p *Javascript) IntGetter() func() (int64, error) {
return func() (res int64, err error) {
v, err := p.vm.Eval(p.script)
if err == nil {
res, err = v.ToInteger()
}
return res, err
return res, err
}
}
// StringGetter sends string request
func (p *Javascript) StringGetter() (res string, err error) {
v, err := p.vm.Eval(p.script)
if err == nil {
res, err = v.ToString()
}
func (p *Javascript) StringGetter() func() (string, error) {
return func() (res string, err error) {
v, err := p.vm.Eval(p.script)
if err == nil {
res, err = v.ToString()
}
return res, err
return res, err
}
}
// BoolGetter parses bool from request
func (p *Javascript) BoolGetter() (res bool, err error) {
v, err := p.vm.Eval(p.script)
if err == nil {
res, err = v.ToBoolean()
}
func (p *Javascript) BoolGetter() func() (bool, error) {
return func() (res bool, err error) {
v, err := p.vm.Eval(p.script)
if err == nil {
res, err = v.ToBoolean()
}
return res, err
return res, err
}
}
// // IntSetter sends int request
// func (p *Javascript) IntSetter(param int64) error {
// body := util.FormatValue(p.body, param)
// _, err := p.request(body)
// return err
// }
// IntSetter sends int request
func (p *Javascript) IntSetter(param string) func(int64) error {
return func(val int64) error {
err := p.vm.Set(param, val)
if err == nil {
_, err = p.vm.Eval(p.script)
}
return err
}
}
// // StringSetter sends string request
// func (p *Javascript) StringSetter(param string) error {
// body := util.FormatValue(p.body, param)
// _, err := p.request(body)
// return err
// }
// StringSetter sends string request
func (p *Javascript) StringSetter(param string) func(string) error {
return func(val string) error {
err := p.vm.Set(param, val)
if err == nil {
_, err = p.vm.Eval(p.script)
}
return err
}
}
// // BoolSetter sends bool request
// func (p *Javascript) BoolSetter(param bool) error {
// body := util.FormatValue(p.body, param)
// _, err := p.request(body)
// return err
// }
// BoolSetter sends bool request
func (p *Javascript) BoolSetter(param string) func(bool) error {
return func(val bool) error {
err := p.vm.Set(param, val)
if err == nil {
_, err = p.vm.Eval(p.script)
}
return err
}
}