consumer, provider 생성 방법 통일

This commit is contained in:
2023-08-31 20:39:00 +09:00
parent cde46e6a5f
commit 57b518562e
4 changed files with 69 additions and 19 deletions

View File

@ -2,12 +2,14 @@ package session
import (
"context"
"errors"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/x/mongo/driver/connstring"
"repositories.action2quare.com/ayo/gocommon"
"repositories.action2quare.com/ayo/gocommon/logger"
)
@ -23,8 +25,18 @@ type sessionMongo struct {
Ts primitive.DateTime `bson:"_ts"`
}
func NewProviderWithMongo(ctx context.Context, mongoUrl string, dbname string, ttl time.Duration) (Provider, error) {
mc, err := gocommon.NewMongoClient(ctx, mongoUrl, dbname)
var errNoDatabaseNameInMongoUri = errors.New("mongo uri has no database name")
func newProviderWithMongo(ctx context.Context, mongoUrl string, ttl time.Duration) (Provider, error) {
connstr, err := connstring.ParseAndValidate(mongoUrl)
if err != nil {
return nil, err
}
if len(connstr.Database) == 0 {
return nil, errNoDatabaseNameInMongoUri
}
mc, err := gocommon.NewMongoClient(ctx, mongoUrl, connstr.Database)
if err != nil {
return nil, err
}
@ -92,8 +104,17 @@ type sessionPipelineDocument struct {
Session *sessionMongo `bson:"fullDocument"`
}
func NewConsumerWithMongo(ctx context.Context, mongoUrl string, dbname string, ttl time.Duration) (Consumer, error) {
mc, err := gocommon.NewMongoClient(ctx, mongoUrl, dbname)
func newConsumerWithMongo(ctx context.Context, mongoUrl string, ttl time.Duration) (Consumer, error) {
connstr, err := connstring.ParseAndValidate(mongoUrl)
if err != nil {
return nil, err
}
if len(connstr.Database) == 0 {
return nil, errNoDatabaseNameInMongoUri
}
mc, err := gocommon.NewMongoClient(ctx, mongoUrl, connstr.Database)
if err != nil {
return nil, err
}