Merge branch 'slice-args' of github.com:foomo/gotsrpc

This commit is contained in:
Jan Halfar 2017-07-03 16:51:45 +02:00
commit 5aa2ecc7fb
2 changed files with 11 additions and 11 deletions

20
go.go
View File

@ -274,11 +274,14 @@ func renderTSRPCServiceProxies(services ServiceList, fullPackageName string, pac
if len(method.Args) > 0 {
args := []string{}
argsDecls := []string{}
skipArgI := 0
for argI, arg := range method.Args {
argName := "arg_" + arg.Name //strconv.Itoa(argI)
if argI == 0 && arg.Value.isHTTPResponseWriter() {
continue
}
@ -287,19 +290,16 @@ func renderTSRPCServiceProxies(services ServiceList, fullPackageName string, pac
continue
}
args = append(args, arg.Value.emptyLiteral(aliases))
switch arg.Value.GoScalarType {
case "int", "int8", "int16", "int32", "int64",
"uint", "uint8", "uint16", "uint32", "uint64":
callArgs = append(callArgs, fmt.Sprint(arg.Value.GoScalarType+"(args[", skipArgI, "].(float64))"))
default:
// assert
callArgs = append(callArgs, fmt.Sprint("args[", skipArgI, "].("+arg.Value.goType(aliases, fullPackageName)+")"))
}
argsDecls = append(argsDecls, argName+" := "+arg.Value.emptyLiteral(aliases))
args = append(args, "&"+argName)
callArgs = append(callArgs, argName)
skipArgI++
}
for _, argDecl := range argsDecls {
g.l(argDecl)
}
g.l("args = []interface{}{" + strings.Join(args, ", ") + "}")
g.l("err := gotsrpc.LoadArgs(args, callStats, r)")
g.l("err := gotsrpc.LoadArgs(&args, callStats, r)")
g.l("if err != nil {")
g.ind(1)
g.l("gotsrpc.ErrorCouldNotLoadArgs(w)")

View File

@ -36,7 +36,7 @@ func ErrorMethodNotAllowed(w http.ResponseWriter) {
w.Write([]byte("you gotta POST"))
}
func LoadArgs(args []interface{}, callStats *CallStats, r *http.Request) error {
func LoadArgs(args interface{}, callStats *CallStats, r *http.Request) error {
start := time.Now()
body, err := ioutil.ReadAll(r.Body)