maximo tejeda e5d160da8c
All checks were successful
dev test / test (push) Successful in 39s
dev test / vulnCheck (push) Successful in 39s
dev test / Ci-Lint (push) Successful in 24s
FIRST COMMIT
2024-12-14 10:40:22 -04:00

45 lines
1.0 KiB
Go

package grpc
import (
"fmt"
"log/slog"
"net"
"git.maximotejeda.com/maximo/cedulados/config"
"git.maximotejeda.com/maximo/cedulados/internal/ports"
"git.maximotejeda.com/maximo/cedulados/proto/golang/cedulados"
"google.golang.org/grpc"
"google.golang.org/grpc/reflection"
)
type Adapter struct {
api ports.APIPorts
port int
log *slog.Logger
cedulados.UnimplementedQueryCeduladoServer
}
func NewAdapter(api ports.APIPorts, port int) *Adapter {
log := slog.Default()
log = log.With("adapter", "cedulados-grpc")
return &Adapter{api: api, port: port, log: log}
}
func (a Adapter) Run() {
var err error
listen, err := net.Listen("tcp", fmt.Sprintf(":%d", a.port))
if err != nil {
a.log.Error("failed to listen", "port", a.port, "error", err)
panic(err)
}
grpcServer := grpc.NewServer()
cedulados.RegisterQueryCeduladoServer(grpcServer, a)
if config.GetEnv() == "development" {
reflection.Register(grpcServer)
}
if err := grpcServer.Serve(listen); err != nil {
a.log.Error("failed to serve grpc on port", "port", a.port)
}
}