authorizer/server/db/providers/couchbase/provider.go
2022-12-01 14:58:35 +05:30

62 lines
1.6 KiB
Go

package couchbase
import (
"fmt"
"os"
"github.com/authorizerdev/authorizer/server/constants"
"github.com/authorizerdev/authorizer/server/memorystore"
"github.com/couchbase/gocb/v2"
)
// TODO change following provider to new db provider
type provider struct {
db *gocb.Bucket
}
// NewProvider returns a new SQL provider
// TODO change following provider to new db provider
func NewProvider() (*provider, error) {
// scopeName := os.Getenv(constants.EnvCouchbaseScope)
bucketName := os.Getenv(constants.EnvCouchbaseBucket)
dbURL := memorystore.RequiredEnvStoreObj.GetRequiredEnv().DatabaseURL
userName := memorystore.RequiredEnvStoreObj.GetRequiredEnv().DatabaseUsername
password := memorystore.RequiredEnvStoreObj.GetRequiredEnv().DatabasePassword
fmt.Println("dbURL", dbURL, userName, password)
opts := gocb.ClusterOptions{
Username: userName,
Password: password,
}
cluster, err := gocb.Connect(dbURL, opts)
if err != nil {
return nil, err
}
bucket := cluster.Bucket(bucketName)
// fmt.Println("1 called in oprovuider")
// v := reflect.ValueOf(models.Collections)
// fmt.Println("called in v", v)
// for i := 0; i < v.NumField(); i++ {
// field := v.Field(i)
// fmt.Println("called in v", field)
// user := gocb.CollectionSpec{
// Name: field.String(),
// ScopeName: scopeName,
// }
// collectionOpts := gocb.CreateCollectionOptions{
// Context: context.TODO(),
// }
// err = bucket.Collections().CreateCollection(user, &collectionOpts)
// fmt.Println("2 called in oprovuider", err)
// }
// fmt.Println("called in oprovuider")
return &provider{
db: bucket,
}, nil
}