diff --git a/go.mod b/go.mod index aee4146..98a0a6c 100644 --- a/go.mod +++ b/go.mod @@ -9,13 +9,14 @@ require ( github.com/joho/godotenv v1.5.1 github.com/pioz/faker v1.7.3 github.com/rs/xid v1.5.0 - github.com/stretchr/testify v1.8.1 + github.com/stretchr/testify v1.8.4 github.com/twmb/franz-go v1.15.4 go.mongodb.org/mongo-driver v1.13.1 go.uber.org/zap v1.26.0 google.golang.org/genproto/googleapis/api v0.0.0-20240116215550-a9fa1716bcac google.golang.org/grpc v1.60.1 google.golang.org/protobuf v1.32.0 + penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240202120244-c4ef330cfe5d ) require ( diff --git a/go.sum b/go.sum index 0f083ca..6f4b4c4 100644 --- a/go.sum +++ b/go.sum @@ -63,13 +63,9 @@ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/twmb/franz-go v1.15.4 h1:qBCkHaiutetnrXjAUWA99D9FEcZVMt2AYwkH3vWEQTw= github.com/twmb/franz-go v1.15.4/go.mod h1:rC18hqNmfo8TMc1kz7CQmHL74PLNF8KVvhflxiiJZCU= github.com/twmb/franz-go/pkg/kmsg v1.7.0 h1:a457IbvezYfA5UkiBvyV3zj0Is3y1i8EJgqjJYoij2E= @@ -160,3 +156,5 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240202120244-c4ef330cfe5d h1:gbaDt35HMDqOK84WYmDIlXMI7rstUcRqNttaT6Kx1do= +penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240202120244-c4ef330cfe5d/go.mod h1:lTmpjry+8evVkXWbEC+WMOELcFkRD1lFMc7J09mOndM= diff --git a/internal/initialize/mongo.go b/internal/initialize/mongo.go index fe98615..c947b4a 100644 --- a/internal/initialize/mongo.go +++ b/internal/initialize/mongo.go @@ -2,21 +2,21 @@ package initialize import ( "codeword/internal/repository" - mdb "codeword/pkg/mongo" "context" "go.mongodb.org/mongo-driver/mongo" "go.uber.org/zap" + mdb "penahub.gitlab.yandexcloud.net/backend/penahub_common/mongo" "time" ) func MongoDB(ctx context.Context, cfg Config) (*mongo.Database, error) { dbConfig := &mdb.Configuration{ - MongoHost: cfg.MongoHost, - MongoPort: cfg.MongoPort, - MongoUser: cfg.MongoUser, - MongoPassword: cfg.MongoPassword, - MongoDatabase: cfg.MongoDatabase, - MongoAuth: cfg.MongoAuth, + Host: cfg.MongoHost, + Port: cfg.MongoPort, + User: cfg.MongoUser, + Password: cfg.MongoPassword, + DatabaseName: cfg.MongoDatabase, + Auth: cfg.MongoAuth, } newCtx, cancel := context.WithTimeout(ctx, 10*time.Second) diff --git a/pkg/mongo/config.go b/pkg/mongo/config.go deleted file mode 100644 index dc809b4..0000000 --- a/pkg/mongo/config.go +++ /dev/null @@ -1,22 +0,0 @@ -package mongo - -import ( - "go.mongodb.org/mongo-driver/bson/primitive" - "go.mongodb.org/mongo-driver/mongo" - "go.mongodb.org/mongo-driver/mongo/options" -) - -type Configuration struct { - MongoHost string `env:"MONGO_HOST" envDefault:"127.0.0.1"` - MongoPort string `env:"MONGO_PORT" envDefault:"27020"` - MongoUser string `env:"MONGO_USER" envDefault:"test"` - MongoPassword string `env:"MONGO_PASSWORD" envDefault:"test"` - MongoDatabase string `env:"MONGO_DB" envDefault:"admin"` - MongoAuth string `env:"MONGO_AUTH" envDefault:"admin"` -} - -type RequestSettings struct { - Driver *mongo.Collection - Options *options.FindOptions - Filter primitive.M -} diff --git a/pkg/mongo/connection.go b/pkg/mongo/connection.go deleted file mode 100644 index 726b277..0000000 --- a/pkg/mongo/connection.go +++ /dev/null @@ -1,59 +0,0 @@ -package mongo - -import ( - "context" - "fmt" - "log" - "net" - "net/url" - "time" - - "go.mongodb.org/mongo-driver/mongo" - "go.mongodb.org/mongo-driver/mongo/options" -) - -type ConnectDeps struct { - Configuration *Configuration - Timeout time.Duration -} - -func Connect(ctx context.Context, deps *ConnectDeps) (*mongo.Database, error) { - if deps == nil { - return nil, ErrEmptyArgs - } - - mongoURI := &url.URL{ - Scheme: "mongodb", - Host: net.JoinHostPort(deps.Configuration.MongoHost, deps.Configuration.MongoPort), - } - - connectionOptions := options.Client(). - ApplyURI(mongoURI.String()). - SetAuth(options.Credential{ - AuthMechanism: "SCRAM-SHA-256", - AuthSource: deps.Configuration.MongoAuth, - Username: deps.Configuration.MongoUser, - Password: deps.Configuration.MongoPassword, - }) - - ticker := time.NewTicker(1 * time.Second) - timeoutExceeded := time.After(deps.Timeout) - - defer ticker.Stop() - - for { - select { - case <-ticker.C: - connection, err := mongo.Connect(ctx, connectionOptions) - if err == nil { - return connection.Database(deps.Configuration.MongoDatabase), nil - } - - log.Printf("failed to connect to db <%s>: %s", mongoURI.String(), err.Error()) - case <-timeoutExceeded: - return nil, fmt.Errorf("db connection <%s> failed after %d timeout", mongoURI.String(), deps.Timeout) - default: - time.Sleep(1 * time.Second) - } - } -} diff --git a/pkg/mongo/errors.go b/pkg/mongo/errors.go deleted file mode 100644 index 2e592f2..0000000 --- a/pkg/mongo/errors.go +++ /dev/null @@ -1,7 +0,0 @@ -package mongo - -import "errors" - -var ( - ErrEmptyArgs = errors.New("arguments are empty") -)