bsky-feedgen/pkg/config/mongodb.go
2025-05-19 01:49:56 +04:00

47 lines
878 B
Go

package config
import (
"github.com/aykhans/bsky-feedgen/pkg/types"
"github.com/aykhans/bsky-feedgen/pkg/utils"
)
const MongoDBBaseDB = "main"
type MongoDBConfig struct {
Host string
Port uint16
Username string
Password string
}
func NewMongoDBConfig() (*MongoDBConfig, types.ErrMap) {
errs := make(types.ErrMap)
host, err := utils.GetEnv[string]("MONGODB_HOST")
if err != nil {
errs["host"] = err
}
port, err := utils.GetEnv[uint16]("MONGODB_PORT")
if err != nil {
errs["port"] = err
}
username, err := utils.GetEnvOr("MONGODB_USERNAME", "")
if err != nil {
errs["username"] = err
}
password, err := utils.GetEnvOr("MONGODB_PASSWORD", "")
if err != nil {
errs["password"] = err
}
if len(errs) > 0 {
return nil, errs
}
return &MongoDBConfig{
Host: host,
Port: port,
Username: username,
Password: password,
}, nil
}