From e185712da508fb99e7bf68f50227ccee3eb898ff Mon Sep 17 00:00:00 2001 From: Quaternions Date: Fri, 29 Nov 2024 15:49:25 -0800 Subject: [PATCH] nasty --- go.mod | 4 ++++ go.sum | 8 ++++++++ pkg/cmds/serve.go | 20 ++++++++++++++++---- pkg/service/service.go | 2 ++ 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 20ab013..46531c0 100644 --- a/go.mod +++ b/go.mod @@ -10,6 +10,7 @@ require ( github.com/dchest/siphash v1.2.3 github.com/go-faster/errors v0.7.1 github.com/go-faster/jx v1.1.0 + github.com/nats-io/nats.go v1.37.0 github.com/ogen-go/ogen v1.2.1 github.com/sirupsen/logrus v1.9.3 github.com/urfave/cli/v2 v2.27.5 @@ -30,6 +31,9 @@ require ( github.com/jackc/puddle/v2 v2.2.1 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect + github.com/klauspost/compress v1.17.6 // indirect + github.com/nats-io/nkeys v0.4.7 // indirect + github.com/nats-io/nuid v1.0.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect golang.org/x/crypto v0.23.0 // indirect diff --git a/go.sum b/go.sum index 79efebe..18afd3c 100644 --- a/go.sum +++ b/go.sum @@ -88,6 +88,8 @@ github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkr github.com/jinzhu/now v1.1.2/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/klauspost/compress v1.17.6 h1:60eq2E/jlfwQXtvZEeBUYADs+BwKBWURIY+Gj2eRGjI= +github.com/klauspost/compress v1.17.6/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -97,6 +99,12 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/nats-io/nats.go v1.37.0 h1:07rauXbVnnJvv1gfIyghFEo6lUcYRY0WXc3x7x0vUxE= +github.com/nats-io/nats.go v1.37.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= +github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= +github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc= +github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/ogen-go/ogen v1.2.1 h1:C5A0lvUMu2wl+eWIxnpXMWnuOJ26a2FyzR1CIC2qG0M= github.com/ogen-go/ogen v1.2.1/go.mod h1:P2zQdEu8UqaVRfD5GEFvl+9q63VjMLvDquq1wVbyInM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/pkg/cmds/serve.go b/pkg/cmds/serve.go index 44fd406..6e21946 100644 --- a/pkg/cmds/serve.go +++ b/pkg/cmds/serve.go @@ -11,6 +11,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" "git.itzana.me/strafesnet/go-grpc/auth" + "github.com/nats-io/nats.go" ) func NewServeCommand() *cli.Command { @@ -62,10 +63,16 @@ func NewServeCommand() *cli.Command { EnvVars: []string{"PORT"}, }, &cli.StringFlag{ - Name: "auth-rpc-host", - Usage: "Host of auth rpc", - EnvVars: []string{"AUTH_RPC_HOST"}, - Value: "auth-service:8090", + Name: "auth-rpc-host", + Usage: "Host of auth rpc", + EnvVars: []string{"AUTH_RPC_HOST"}, + Value: "auth-service:8090", + }, + &cli.StringFlag{ + Name: "nats-host", + Usage: "Host of nats", + EnvVars: []string{"NATS_HOST"}, + Value: "nats:4222", }, }, } @@ -76,8 +83,13 @@ func serve(ctx *cli.Context) error { if err != nil { log.WithError(err).Fatal("failed to connect database") } + nc, err := nats.Connect(ctx.String("nats-host")) + if err != nil { + log.WithError(err).Fatal("failed to connect nats") + } svc := &service.Service{ DB: db, + Nats: nc, } conn, err := grpc.Dial(ctx.String("auth-rpc-host"), grpc.WithTransportCredentials(insecure.NewCredentials())) diff --git a/pkg/service/service.go b/pkg/service/service.go index 14a1e09..6f4950f 100644 --- a/pkg/service/service.go +++ b/pkg/service/service.go @@ -5,6 +5,7 @@ import ( "errors" "git.itzana.me/strafesnet/maps-service/pkg/api" "git.itzana.me/strafesnet/maps-service/pkg/datastore" + "github.com/nats-io/nats.go" ) var ( @@ -16,6 +17,7 @@ var ( type Service struct { DB datastore.Datastore + Nats *nats.Conn } // NewError creates *ErrorStatusCode from error returned by handler.