overflow_gateway_websocket/external/grpc/client.go

36 lines
686 B
Go
Raw Normal View History

2017-11-10 13:24:10 +00:00
package grpc
import (
"context"
"fmt"
"strings"
ooas "git.loafle.net/overflow/overflow_api_server/golang"
)
func Exec(ctx context.Context, method string, params []string) (string, error) {
if nil == grpcPool {
return "", fmt.Errorf("App: GRPC Pool is not initialized")
}
var client interface{}
var err error
if client, err = grpcPool.Get(); nil != err {
return "", err
}
defer grpcPool.Put(client)
sm := strings.Split(method, ".")
si := &ooas.ServerInput{
Target: sm[0],
Method: sm[1],
Params: params,
}
var so *ooas.ServerOutput
if so, err = client.(ooas.OverflowApiServerClient).Exec(ctx, si); nil != err {
return "", err
}
return so.Result, nil
}