gotsrpc/example/union/service/gotsrpc_gen.go
2022-08-17 08:48:21 +02:00

134 lines
3.5 KiB
Go

// Code generated by gotsrpc https://github.com/foomo/gotsrpc/v2 - DO NOT EDIT.
package service
import (
io "io"
http "net/http"
time "time"
gotsrpc "github.com/foomo/gotsrpc/v2"
)
func init() {
gotsrpc.MustRegisterUnionExt(UnionString{})
gotsrpc.MustRegisterUnionExt(UnionStruct{})
}
const (
ServiceGoTSRPCProxyInlineStruct = "InlineStruct"
ServiceGoTSRPCProxyInlineStructPtr = "InlineStructPtr"
ServiceGoTSRPCProxyUnionString = "UnionString"
ServiceGoTSRPCProxyUnionStruct = "UnionStruct"
)
type ServiceGoTSRPCProxy struct {
EndPoint string
service Service
}
func NewDefaultServiceGoTSRPCProxy(service Service) *ServiceGoTSRPCProxy {
return NewServiceGoTSRPCProxy(service, "/service")
}
func NewServiceGoTSRPCProxy(service Service, endpoint string) *ServiceGoTSRPCProxy {
return &ServiceGoTSRPCProxy{
EndPoint: endpoint,
service: service,
}
}
// ServeHTTP exposes your service
func (p *ServiceGoTSRPCProxy) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if r.Method == http.MethodOptions {
return
} else if r.Method != http.MethodPost {
gotsrpc.ErrorMethodNotAllowed(w)
return
}
defer io.Copy(io.Discard, r.Body) // Drain Request Body
funcName := gotsrpc.GetCalledFunc(r, p.EndPoint)
callStats, _ := gotsrpc.GetStatsForRequest(r)
callStats.Func = funcName
callStats.Package = "github.com/foomo/gotsrpc/v2/example/union/service"
callStats.Service = "Service"
switch funcName {
case ServiceGoTSRPCProxyInlineStruct:
var (
args []interface{}
rets []interface{}
)
executionStart := time.Now()
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
inlineStructE := p.service.InlineStruct(&rw, r)
callStats.Execution = time.Since(executionStart)
if rw.Status() == http.StatusOK {
rets = []interface{}{inlineStructE}
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
gotsrpc.ErrorCouldNotReply(w)
return
}
}
gotsrpc.Monitor(w, r, args, rets, callStats)
return
case ServiceGoTSRPCProxyInlineStructPtr:
var (
args []interface{}
rets []interface{}
)
executionStart := time.Now()
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
inlineStructPtrE := p.service.InlineStructPtr(&rw, r)
callStats.Execution = time.Since(executionStart)
if rw.Status() == http.StatusOK {
rets = []interface{}{inlineStructPtrE}
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
gotsrpc.ErrorCouldNotReply(w)
return
}
}
gotsrpc.Monitor(w, r, args, rets, callStats)
return
case ServiceGoTSRPCProxyUnionString:
var (
args []interface{}
rets []interface{}
)
executionStart := time.Now()
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
unionStringE := p.service.UnionString(&rw, r)
callStats.Execution = time.Since(executionStart)
if rw.Status() == http.StatusOK {
rets = []interface{}{unionStringE}
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
gotsrpc.ErrorCouldNotReply(w)
return
}
}
gotsrpc.Monitor(w, r, args, rets, callStats)
return
case ServiceGoTSRPCProxyUnionStruct:
var (
args []interface{}
rets []interface{}
)
executionStart := time.Now()
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
unionStructE := p.service.UnionStruct(&rw, r)
callStats.Execution = time.Since(executionStart)
if rw.Status() == http.StatusOK {
rets = []interface{}{unionStructE}
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
gotsrpc.ErrorCouldNotReply(w)
return
}
}
gotsrpc.Monitor(w, r, args, rets, callStats)
return
default:
gotsrpc.ClearStats(r)
gotsrpc.ErrorFuncNotFound(w)
}
}