Use components in Handler
continuous-integration/drone/tag Build is failing Details

master v0.3.10
René Jochum 2 years ago
parent f2736f97b3
commit 341239a874
Signed by: jochum
GPG Key ID: F7D906F5E51E8E5E

@ -5,6 +5,6 @@ var (
)
const (
Name = "go.micro.router"
Name = "jo.micro.router"
PkgPath = "jochum.dev/jo-micro/router"
)

@ -142,6 +142,7 @@ func main() {
// Initialize the Auth Plugin over RouterAuthRegistry
if err := routerAuthReg.Init(auth2.CliContext(c), auth2.Service(srv), auth2.Logrus(ilogger.Logrus())); err != nil {
ilogger.Logrus().Fatal(err)
return err
}
// Initialize GIN
@ -156,6 +157,7 @@ func main() {
// Initalize the Handler
if err := routerHandler.Init(srv, r, routerAuthReg.Plugin(), c.Int("router_refresh"), c.String("router_ratelimiter_store_url")); err != nil {
ilogger.Logrus().Fatal(err)
return err
}
// Add middlewares to gin
@ -168,6 +170,7 @@ func main() {
// Register gin with micro
if err := micro.RegisterHandler(srv.Server(), r); err != nil {
ilogger.Logrus().Fatal(err)
return err
}
return nil

@ -22,7 +22,6 @@ LABEL maintainer="René Jochum <rene@jochum.dev>"
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=builder /etc/passwd /etc/passwd
COPY --from=builder /usr/local/bin/microrouterd /usr/local/bin/microrouterd
RUN chmod +x /usr/local/bin/microrouterd
# Run as appuser
USER appuser

@ -86,4 +86,5 @@ require (
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
jochum.dev/jo-micro/components v0.0.11 // indirect
)

@ -323,3 +323,5 @@ jochum.dev/jo-micro/auth2 v0.3.2 h1:dWY7RPLS3/Sn7YWDz4Kl8Str6lzMXUdfbMBLJLXmehk=
jochum.dev/jo-micro/auth2 v0.3.2/go.mod h1:VRGDU1tsDrlEVN9ch3DlvhUslDTQGGp3KLReBRL6V1s=
jochum.dev/jo-micro/auth2 v0.3.3 h1:mL8ipUfgNx2d5/JeuW7i1P/ZUzUpVT8G9WYH02xr/vA=
jochum.dev/jo-micro/auth2 v0.3.3/go.mod h1:14yXAQkyHYC1RyHNoweNZahsRsaHrCEek7YlXDtt7Hg=
jochum.dev/jo-micro/components v0.0.11 h1:Rtm0J+MiMcyFVrweJ3r1eoxQY5qP59GzC1TPc7O9Ixs=
jochum.dev/jo-micro/components v0.0.11/go.mod h1:XzhOsv4pAOoRdnrgvYlZXwPzzBd9/8h2CzehB/Yf92w=

@ -2,29 +2,95 @@ package router
import (
"context"
"fmt"
"strings"
"github.com/urfave/cli/v2"
"go-micro.dev/v4/server"
"google.golang.org/protobuf/types/known/emptypb"
"jochum.dev/jo-micro/components"
"jochum.dev/jo-micro/router/internal/proto/routerclientpb"
"jochum.dev/jo-micro/router/internal/util"
)
const Name = "router"
// Handler is the handler for jochum.dev/jo-micro/router/proto/routerpb.RrouterService
type Handler struct {
routerURI string
routes []*routerclientpb.RoutesReply_Route
initialized bool
routerURI string
routes []*routerclientpb.RoutesReply_Route
}
// NewHandler returns a new dynrouterpb Handler
func NewHandler(routerURI string, routes ...*Route) *Handler {
pbRoutes := []*routerclientpb.RoutesReply_Route{}
func New() *Handler {
return &Handler{initialized: false, routes: []*routerclientpb.RoutesReply_Route{}}
}
func Must(ctx context.Context) *Handler {
return components.Must(ctx).Must(Name).(*Handler)
}
func MustReg(cReg *components.Components) *Handler {
return cReg.Must(Name).(*Handler)
}
func (h *Handler) Name() string {
return Name
}
func (h *Handler) Priority() int {
return 1000
}
func (h *Handler) Initialized() bool {
return h.initialized
}
func (h *Handler) Init(r *components.Components, cli *cli.Context) error {
if h.initialized {
return nil
}
h.routerURI = cli.String(fmt.Sprintf("%s_router_basepath", strings.ToLower(r.FlagPrefix())))
h.RegisterWithServer(r.Service().Server())
h.initialized = true
return nil
}
func (h *Handler) Stop() error {
return nil
}
func (h *Handler) Flags(r *components.Components) []cli.Flag {
return []cli.Flag{
&cli.StringFlag{
Name: fmt.Sprintf("%s_router_basepath", strings.ToLower(r.FlagPrefix())),
Usage: "Router basepath",
EnvVars: []string{fmt.Sprintf("%s_ROUTER_BASEPATH", strings.ToUpper(r.FlagPrefix()))},
Value: fmt.Sprintf("api/v1/%s", strings.ToLower(r.FlagPrefix())),
},
}
}
func (h *Handler) Health(context context.Context) error {
return nil
}
func (h *Handler) WrapHandlerFunc(ctx context.Context, req server.Request, rsp interface{}) error {
return nil
}
func (h *Handler) Add(routes ...*Route) {
for _, r := range routes {
// NewRoute returns nil if no Endpoint has been specified, ignore these here
if r == nil {
continue
}
pbRoutes = append(pbRoutes, &routerclientpb.RoutesReply_Route{
h.routes = append(h.routes, &routerclientpb.RoutesReply_Route{
IsGlobal: r.IsGlobal,
Method: r.Method,
Path: r.Path,
@ -35,8 +101,6 @@ func NewHandler(routerURI string, routes ...*Route) *Handler {
RatelimitUser: r.RatelimitUser,
})
}
return &Handler{routerURI, pbRoutes}
}
// RegisterWithServer registers this Handler with a server

Loading…
Cancel
Save