iris/mvc/activator/methodfunc/methodfunc.go
kataras 591806795e Update to 8.4.0 | New macro type, new high-optimized MVC features. Read HISTORY.md
Former-commit-id: b72a23ba063be60a9750c8b1b0df024b0c8ed549
2017-08-27 18:46:04 +03:00

36 lines
623 B
Go

package methodfunc
import (
"reflect"
)
// MethodFunc the handler function.
type MethodFunc struct {
FuncInfo
FuncCaller
RelPath string
}
// Resolve returns all the method funcs
// necessary information and actions to
// perform the request.
func Resolve(typ reflect.Type) (methodFuncs []MethodFunc) {
infos := fetchInfos(typ)
for _, info := range infos {
p, ok := resolveRelativePath(info)
if !ok {
continue
}
caller := resolveCaller(p)
methodFunc := MethodFunc{
RelPath: p.RelPath,
FuncInfo: info,
FuncCaller: caller,
}
methodFuncs = append(methodFuncs, methodFunc)
}
return
}