mirror of
https://github.com/foomo/gotsrpc.git
synced 2025-10-16 12:35:35 +00:00
262 lines
7.4 KiB
Go
262 lines
7.4 KiB
Go
// Code generated by gotsrpc https://github.com/foomo/gotsrpc/v2 - DO NOT EDIT.
|
|
|
|
package backend
|
|
|
|
import (
|
|
io "io"
|
|
http "net/http"
|
|
time "time"
|
|
|
|
gotsrpc "github.com/foomo/gotsrpc/v2"
|
|
)
|
|
|
|
const (
|
|
ServiceGoTSRPCProxyCustomError = "CustomError"
|
|
ServiceGoTSRPCProxyError = "Error"
|
|
ServiceGoTSRPCProxyMultiScalar = "MultiScalar"
|
|
ServiceGoTSRPCProxyScalar = "Scalar"
|
|
ServiceGoTSRPCProxyScalarError = "ScalarError"
|
|
ServiceGoTSRPCProxyStruct = "Struct"
|
|
ServiceGoTSRPCProxyTypedCustomError = "TypedCustomError"
|
|
ServiceGoTSRPCProxyTypedError = "TypedError"
|
|
ServiceGoTSRPCProxyTypedScalarError = "TypedScalarError"
|
|
ServiceGoTSRPCProxyTypedWrappedError = "TypedWrappedError"
|
|
ServiceGoTSRPCProxyWrappedError = "WrappedError"
|
|
)
|
|
|
|
type ServiceGoTSRPCProxy struct {
|
|
EndPoint string
|
|
service Service
|
|
}
|
|
|
|
func NewDefaultServiceGoTSRPCProxy(service Service) *ServiceGoTSRPCProxy {
|
|
return NewServiceGoTSRPCProxy(service, "/service/backend")
|
|
}
|
|
|
|
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/errors/service/backend"
|
|
callStats.Service = "Service"
|
|
switch funcName {
|
|
case ServiceGoTSRPCProxyCustomError:
|
|
var (
|
|
args []interface{}
|
|
rets []interface{}
|
|
)
|
|
executionStart := time.Now()
|
|
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
|
|
customErrorE := p.service.CustomError(&rw, r)
|
|
callStats.Execution = time.Since(executionStart)
|
|
if rw.Status() == http.StatusOK {
|
|
rets = []interface{}{customErrorE}
|
|
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
|
|
gotsrpc.ErrorCouldNotReply(w)
|
|
return
|
|
}
|
|
}
|
|
gotsrpc.Monitor(w, r, args, rets, callStats)
|
|
return
|
|
case ServiceGoTSRPCProxyError:
|
|
var (
|
|
args []interface{}
|
|
rets []interface{}
|
|
)
|
|
executionStart := time.Now()
|
|
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
|
|
errorE := p.service.Error(&rw, r)
|
|
callStats.Execution = time.Since(executionStart)
|
|
if rw.Status() == http.StatusOK {
|
|
rets = []interface{}{errorE}
|
|
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
|
|
gotsrpc.ErrorCouldNotReply(w)
|
|
return
|
|
}
|
|
}
|
|
gotsrpc.Monitor(w, r, args, rets, callStats)
|
|
return
|
|
case ServiceGoTSRPCProxyMultiScalar:
|
|
var (
|
|
args []interface{}
|
|
rets []interface{}
|
|
)
|
|
executionStart := time.Now()
|
|
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
|
|
multiScalarE := p.service.MultiScalar(&rw, r)
|
|
callStats.Execution = time.Since(executionStart)
|
|
if rw.Status() == http.StatusOK {
|
|
rets = []interface{}{multiScalarE}
|
|
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
|
|
gotsrpc.ErrorCouldNotReply(w)
|
|
return
|
|
}
|
|
}
|
|
gotsrpc.Monitor(w, r, args, rets, callStats)
|
|
return
|
|
case ServiceGoTSRPCProxyScalar:
|
|
var (
|
|
args []interface{}
|
|
rets []interface{}
|
|
)
|
|
executionStart := time.Now()
|
|
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
|
|
scalarE := p.service.Scalar(&rw, r)
|
|
callStats.Execution = time.Since(executionStart)
|
|
if rw.Status() == http.StatusOK {
|
|
rets = []interface{}{scalarE}
|
|
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
|
|
gotsrpc.ErrorCouldNotReply(w)
|
|
return
|
|
}
|
|
}
|
|
gotsrpc.Monitor(w, r, args, rets, callStats)
|
|
return
|
|
case ServiceGoTSRPCProxyScalarError:
|
|
var (
|
|
args []interface{}
|
|
rets []interface{}
|
|
)
|
|
executionStart := time.Now()
|
|
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
|
|
scalarErrorE := p.service.ScalarError(&rw, r)
|
|
callStats.Execution = time.Since(executionStart)
|
|
if rw.Status() == http.StatusOK {
|
|
rets = []interface{}{scalarErrorE}
|
|
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
|
|
gotsrpc.ErrorCouldNotReply(w)
|
|
return
|
|
}
|
|
}
|
|
gotsrpc.Monitor(w, r, args, rets, callStats)
|
|
return
|
|
case ServiceGoTSRPCProxyStruct:
|
|
var (
|
|
args []interface{}
|
|
rets []interface{}
|
|
)
|
|
executionStart := time.Now()
|
|
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
|
|
structE := p.service.Struct(&rw, r)
|
|
callStats.Execution = time.Since(executionStart)
|
|
if rw.Status() == http.StatusOK {
|
|
rets = []interface{}{structE}
|
|
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
|
|
gotsrpc.ErrorCouldNotReply(w)
|
|
return
|
|
}
|
|
}
|
|
gotsrpc.Monitor(w, r, args, rets, callStats)
|
|
return
|
|
case ServiceGoTSRPCProxyTypedCustomError:
|
|
var (
|
|
args []interface{}
|
|
rets []interface{}
|
|
)
|
|
executionStart := time.Now()
|
|
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
|
|
typedCustomErrorE := p.service.TypedCustomError(&rw, r)
|
|
callStats.Execution = time.Since(executionStart)
|
|
if rw.Status() == http.StatusOK {
|
|
rets = []interface{}{typedCustomErrorE}
|
|
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
|
|
gotsrpc.ErrorCouldNotReply(w)
|
|
return
|
|
}
|
|
}
|
|
gotsrpc.Monitor(w, r, args, rets, callStats)
|
|
return
|
|
case ServiceGoTSRPCProxyTypedError:
|
|
var (
|
|
args []interface{}
|
|
rets []interface{}
|
|
)
|
|
executionStart := time.Now()
|
|
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
|
|
typedErrorE := p.service.TypedError(&rw, r)
|
|
callStats.Execution = time.Since(executionStart)
|
|
if rw.Status() == http.StatusOK {
|
|
rets = []interface{}{typedErrorE}
|
|
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
|
|
gotsrpc.ErrorCouldNotReply(w)
|
|
return
|
|
}
|
|
}
|
|
gotsrpc.Monitor(w, r, args, rets, callStats)
|
|
return
|
|
case ServiceGoTSRPCProxyTypedScalarError:
|
|
var (
|
|
args []interface{}
|
|
rets []interface{}
|
|
)
|
|
executionStart := time.Now()
|
|
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
|
|
typedScalarErrorE := p.service.TypedScalarError(&rw, r)
|
|
callStats.Execution = time.Since(executionStart)
|
|
if rw.Status() == http.StatusOK {
|
|
rets = []interface{}{typedScalarErrorE}
|
|
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
|
|
gotsrpc.ErrorCouldNotReply(w)
|
|
return
|
|
}
|
|
}
|
|
gotsrpc.Monitor(w, r, args, rets, callStats)
|
|
return
|
|
case ServiceGoTSRPCProxyTypedWrappedError:
|
|
var (
|
|
args []interface{}
|
|
rets []interface{}
|
|
)
|
|
executionStart := time.Now()
|
|
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
|
|
typedWrappedErrorE := p.service.TypedWrappedError(&rw, r)
|
|
callStats.Execution = time.Since(executionStart)
|
|
if rw.Status() == http.StatusOK {
|
|
rets = []interface{}{typedWrappedErrorE}
|
|
if err := gotsrpc.Reply(rets, callStats, r, w); err != nil {
|
|
gotsrpc.ErrorCouldNotReply(w)
|
|
return
|
|
}
|
|
}
|
|
gotsrpc.Monitor(w, r, args, rets, callStats)
|
|
return
|
|
case ServiceGoTSRPCProxyWrappedError:
|
|
var (
|
|
args []interface{}
|
|
rets []interface{}
|
|
)
|
|
executionStart := time.Now()
|
|
rw := gotsrpc.ResponseWriter{ResponseWriter: w}
|
|
wrappedErrorE := p.service.WrappedError(&rw, r)
|
|
callStats.Execution = time.Since(executionStart)
|
|
if rw.Status() == http.StatusOK {
|
|
rets = []interface{}{wrappedErrorE}
|
|
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)
|
|
}
|
|
}
|