Initial 2024-01-26
This commit is contained in:
78
cmpSnipper/cmpSnipperSnip.go
Normal file
78
cmpSnipper/cmpSnipperSnip.go
Normal file
@@ -0,0 +1,78 @@
|
||||
|
||||
package cmpSnipper
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"errors"
|
||||
)
|
||||
|
||||
func (app *App) SnipExists(funcName string) bool {
|
||||
snipName := app.UpperFirst(funcName) + "Snip"
|
||||
refCls := reflect.ValueOf(app)
|
||||
refMth := refCls.MethodByName(snipName)
|
||||
|
||||
if !refMth.IsValid() {
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func (app *App) SnipCall(cmpWbsCli cmpWbsCliStruct, fnName string, ifcII interface{}) (interface{}, error) {
|
||||
snName := app.UpperFirst(fnName) + "Snip"
|
||||
refCls := reflect.ValueOf(app)
|
||||
refMth := refCls.MethodByName(snName)
|
||||
|
||||
if !refMth.IsValid() {
|
||||
app.Log("Call method \"%s\" not found", snName)
|
||||
return nil, errors.New("Call method not founnd")
|
||||
}
|
||||
|
||||
app.Log("Call method \"%s\"", snName)
|
||||
|
||||
ifcIM := map[string]interface{}{
|
||||
"InputArgument" : ifcII,
|
||||
"HostPort" : cmpWbsCli.HostPort,
|
||||
}
|
||||
|
||||
refIL := []reflect.Value{
|
||||
reflect.ValueOf(ifcIM),
|
||||
}
|
||||
|
||||
refOL := refMth.Call(refIL)
|
||||
|
||||
infOI := refOL[0].Interface()
|
||||
|
||||
app.Log("Interface output item %+v", infOI)
|
||||
|
||||
return infOI, nil
|
||||
}
|
||||
|
||||
func (app *App) SnipGetCli(parm any) (cmpWbsCliStruct, error) {
|
||||
var err error
|
||||
var cmpWbsCli cmpWbsCliStruct
|
||||
|
||||
HostPortIfc, err := app.IfcGet(parm.(map[string]interface{}), "HostPort")
|
||||
|
||||
if err != nil {
|
||||
app.Log("Invalid iterface")
|
||||
return cmpWbsCli, err
|
||||
}
|
||||
|
||||
HostPort, ok := HostPortIfc.(string)
|
||||
|
||||
if !ok {
|
||||
app.Log("Invalid string")
|
||||
return cmpWbsCli, errors.New("Can't covert to string")
|
||||
}
|
||||
|
||||
for _, ii := range app.CliList {
|
||||
if HostPort != ii.HostPort {
|
||||
continue
|
||||
}
|
||||
|
||||
return ii, nil
|
||||
}
|
||||
|
||||
return cmpWbsCli, errors.New("Client " + HostPort + " not found")
|
||||
}
|
Reference in New Issue
Block a user