62 lines
1.6 KiB
Go
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
|
|
}
|