diff --git a/go.mod b/go.mod index 25fc970..cb4c74e 100644 --- a/go.mod +++ b/go.mod @@ -12,6 +12,8 @@ require ( github.com/rs/zerolog v1.28.0 github.com/slok/go-http-metrics v0.10.0 github.com/spf13/viper v1.14.0 + go.uber.org/fx v1.18.2 + google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e ) require ( @@ -37,11 +39,12 @@ require ( github.com/subosito/gotenv v1.4.1 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/dig v1.15.0 // indirect - go.uber.org/fx v1.18.2 // indirect go.uber.org/multierr v1.8.0 // indirect go.uber.org/zap v1.21.0 // indirect + golang.org/x/net v0.0.0-20221014081412-f15817d10f9b // indirect golang.org/x/sys v0.2.0 // indirect golang.org/x/text v0.4.0 // indirect + google.golang.org/grpc v1.50.1 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 32c4c3c..dd7b16b 100644 --- a/go.sum +++ b/go.sum @@ -380,6 +380,7 @@ golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b h1:tvrvnPFcdzp294diPnrdZZZ8XUt2Tyj7svb7X52iDuU= +golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -584,6 +585,8 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e h1:S9GbmC1iCgvbLyAokVCwiO6tVIrU9Y7c5oMx1V/ki/Y= +google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -600,6 +603,8 @@ google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY= +google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/internal/config/config.go b/internal/config/config.go index 8418c75..be6096c 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -79,5 +79,10 @@ func New(lc fx.Lifecycle, params ConfigParams) (*Config, error) { log: log, } + if s.Debug { + params.Logger.EnableDebugLogging() + s.log = params.Logger.Get() + } + return s, nil } diff --git a/internal/database/database.go b/internal/database/database.go index be4b3e9..3450e6e 100644 --- a/internal/database/database.go +++ b/internal/database/database.go @@ -31,18 +31,21 @@ type Database struct { } func New(lc fx.Lifecycle, params DatabaseParams) (*Database, error) { - s.log.Info().Msg("Database instantiated") s := new(Database) s.params = params s.log = params.Logger.Get() + s.log.Info().Msg("Database instantiated") + lc.Append(fx.Hook{ OnStart: func(ctx context.Context) error { s.log.Info().Msg("Database OnStart Hook") // FIXME connect to db + return nil }, OnStop: func(ctx context.Context) error { // FIXME disconnect from db + return nil }, }) return s, nil diff --git a/internal/handlers/handlers.go b/internal/handlers/handlers.go index 7dcba34..5dd0990 100644 --- a/internal/handlers/handlers.go +++ b/internal/handlers/handlers.go @@ -4,17 +4,17 @@ import ( "context" "encoding/json" "net/http" - "time" + "git.eeqj.de/sneak/gohttpserver/internal/database" "git.eeqj.de/sneak/gohttpserver/internal/globals" + "git.eeqj.de/sneak/gohttpserver/internal/logger" "github.com/rs/zerolog" "go.uber.org/fx" - "google.golang.org/genproto/googleapis/spanner/admin/database/v1" ) type HandlersParams struct { fx.In - Logger *zerolog.Logger + Logger logger.Logger Globals globals.Globals Database database.Database } @@ -31,20 +31,12 @@ func New(lc fx.Lifecycle, params HandlersParams) (*Handlers, error) { lc.Append(fx.Hook{ OnStart: func(ctx context.Context) error { // FIXME compile some templates here or something + return nil }, }) return s, nil } -func (s *Handlers) HandleNow() http.HandlerFunc { - type response struct { - Now time.Time `json:"now"` - } - return func(w http.ResponseWriter, r *http.Request) { - s.respondJSON(w, r, &response{Now: time.Now()}, 200) - } -} - func (s *Handlers) respondJSON(w http.ResponseWriter, r *http.Request, data interface{}, status int) { w.WriteHeader(status) w.Header().Set("Content-Type", "application/json") diff --git a/internal/logger/logger.go b/internal/logger/logger.go index 0bde904..4f9ca53 100644 --- a/internal/logger/logger.go +++ b/internal/logger/logger.go @@ -1,4 +1,4 @@ -package server +package logger import ( "io" @@ -8,13 +8,11 @@ import ( "git.eeqj.de/sneak/gohttpserver/internal/globals" "github.com/rs/zerolog" "go.uber.org/fx" - "honnef.co/go/tools/config" ) type LoggerParams struct { fx.In Globals globals.Globals - Config config.Config } type Logger struct { @@ -78,14 +76,14 @@ func New(lc fx.Lifecycle, params LoggerParams) (*Logger, error) { l.log = &logger // log.Logger = logger - if l.params.Config.Debug { - zerolog.SetGlobalLevel(zerolog.DebugLevel) - l.log.Debug().Bool("debug", true).Send() - } - return l, nil } +func (l *Logger) EnableDebugLogging() { + zerolog.SetGlobalLevel(zerolog.DebugLevel) + l.log.Debug().Bool("debug", true).Send() +} + func (l *Logger) Get() *zerolog.Logger { return l.log } diff --git a/internal/server/server.go b/internal/server/server.go index 217daf4..72675c3 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -3,19 +3,19 @@ package server import ( "context" "fmt" + "log" "net/http" "os" "os/signal" "syscall" "time" + "git.eeqj.de/sneak/gohttpserver/internal/config" "git.eeqj.de/sneak/gohttpserver/internal/globals" - "github.com/docker/docker/daemon/logger" + "git.eeqj.de/sneak/gohttpserver/internal/logger" "github.com/rs/zerolog" - "github.com/rs/zerolog/log" "github.com/spf13/viper" "go.uber.org/fx" - "honnef.co/go/tools/config" "github.com/getsentry/sentry-go" "github.com/go-chi/chi"