From 4245afa0249fa6cd5541ea88cc85103ccb0f3611 Mon Sep 17 00:00:00 2001 From: manoj Date: Sat, 17 Dec 2022 16:05:13 +0530 Subject: [PATCH] pass the scope name to provider so every provider method can use the same scopename --- server/constants/env.go | 6 ++-- .../db/providers/couchbase/email_template.go | 20 +++++------ server/db/providers/couchbase/env.go | 14 ++++---- server/db/providers/couchbase/otp.go | 8 ++--- server/db/providers/couchbase/provider.go | 13 ++++--- server/db/providers/couchbase/shared.go | 6 ++-- server/db/providers/couchbase/user.go | 24 ++++++------- .../couchbase/verification_requests.go | 16 ++++----- server/db/providers/couchbase/webhook.go | 34 ++++++++----------- server/db/providers/couchbase/webhook_log.go | 9 +++-- server/resolvers/admin_signup.go | 4 +++ server/test/resolvers_test.go | 3 +- 12 files changed, 78 insertions(+), 79 deletions(-) diff --git a/server/constants/env.go b/server/constants/env.go index 2a58f5b..efe313c 100644 --- a/server/constants/env.go +++ b/server/constants/env.go @@ -27,10 +27,10 @@ const ( EnvAwsAccessKeyID = "AWS_ACCESS_KEY_ID" // EnvAwsAccessKey key for env variable AWS_SECRET_ACCESS_KEY EnvAwsSecretAccessKey = "AWS_SECRET_ACCESS_KEY" - // EnvAwsAccessKey key for env variable AWS_SECRET_KEY - EnvCouchbaseScope = "COUCHBASE_SCOPE" - // EnvAwsAccessKey key for env variable AWS_SECRET_KEY + // EnvCouchbaseBucket key for env variable COUCHBASE_BUCKET EnvCouchbaseBucket = "COUCHBASE_BUCKET" + // EnvCouchbaseBucket key for env variable COUCHBASE_SCOPE + EnvCouchbaseScope = "COUCHBASE_SCOPE" // EnvKeyDatabaseName key for env variable DATABASE_NAME EnvKeyDatabaseName = "DATABASE_NAME" // EnvKeyDatabaseUsername key for env variable DATABASE_USERNAME diff --git a/server/db/providers/couchbase/email_template.go b/server/db/providers/couchbase/email_template.go index 134939f..796ca0f 100644 --- a/server/db/providers/couchbase/email_template.go +++ b/server/db/providers/couchbase/email_template.go @@ -54,9 +54,9 @@ func (p *provider) UpdateEmailTemplate(ctx context.Context, emailTemplate models updateFields, params := GetSetFields(emailTemplateMap) params["emailId"] = emailTemplate.ID - query := fmt.Sprintf("UPDATE auth._default.%s SET %s WHERE _id = $emailId", models.Collections.EmailTemplate, updateFields) + query := fmt.Sprintf("UPDATE %s.%s SET %s WHERE _id = $emailId", p.scopeName, models.Collections.EmailTemplate, updateFields) - _, err = p.db.Scope("_default").Query(query, &gocb.QueryOptions{ + _, err = p.db.Query(query, &gocb.QueryOptions{ Context: ctx, NamedParameters: params, }) @@ -70,13 +70,12 @@ func (p *provider) UpdateEmailTemplate(ctx context.Context, emailTemplate models func (p *provider) ListEmailTemplate(ctx context.Context, pagination model.Pagination) (*model.EmailTemplates, error) { emailTemplates := []*model.EmailTemplate{} paginationClone := pagination - scope := p.db.Scope("_default") - _, paginationClone.Total = GetTotalDocs(ctx, scope, models.Collections.EmailTemplate) + _, paginationClone.Total = p.GetTotalDocs(ctx, models.Collections.EmailTemplate) - userQuery := fmt.Sprintf("SELECT _id, event_name, subject, design, template, created_at, updated_at FROM auth._default.%s ORDER BY _id OFFSET $1 LIMIT $2", models.Collections.EmailTemplate) + userQuery := fmt.Sprintf("SELECT _id, event_name, subject, design, template, created_at, updated_at FROM %s.%s ORDER BY _id OFFSET $1 LIMIT $2", p.scopeName, models.Collections.EmailTemplate) - queryResult, err := scope.Query(userQuery, &gocb.QueryOptions{ + queryResult, err := p.db.Query(userQuery, &gocb.QueryOptions{ Context: ctx, ScanConsistency: gocb.QueryScanConsistencyRequestPlus, PositionalParameters: []interface{}{paginationClone.Offset, paginationClone.Limit}, @@ -110,8 +109,8 @@ func (p *provider) ListEmailTemplate(ctx context.Context, pagination model.Pagin func (p *provider) GetEmailTemplateByID(ctx context.Context, emailTemplateID string) (*model.EmailTemplate, error) { emailTemplate := models.EmailTemplate{} - query := fmt.Sprintf(`SELECT _id, event_name, subject, design, template, created_at, updated_at FROM auth._default.%s WHERE _id = $1 LIMIT 1`, models.Collections.EmailTemplate) - q, err := p.db.Scope("_default").Query(query, &gocb.QueryOptions{ + query := fmt.Sprintf(`SELECT _id, event_name, subject, design, template, created_at, updated_at FROM %s.%s WHERE _id = $1 LIMIT 1`, p.scopeName, models.Collections.EmailTemplate) + q, err := p.db.Query(query, &gocb.QueryOptions{ Context: ctx, ScanConsistency: gocb.QueryScanConsistencyRequestPlus, PositionalParameters: []interface{}{emailTemplateID}, @@ -133,9 +132,8 @@ func (p *provider) GetEmailTemplateByID(ctx context.Context, emailTemplateID str func (p *provider) GetEmailTemplateByEventName(ctx context.Context, eventName string) (*model.EmailTemplate, error) { emailTemplate := models.EmailTemplate{} - scope := p.db.Scope("_default") - query := fmt.Sprintf("SELECT _id, event_name, subject, design, template, created_at, updated_at FROM auth._default.%s WHERE event_name=$1 LIMIT 1", models.Collections.EmailTemplate) - q, err := scope.Query(query, &gocb.QueryOptions{ + query := fmt.Sprintf("SELECT _id, event_name, subject, design, template, created_at, updated_at FROM %s.%s WHERE event_name=$1 LIMIT 1", p.scopeName, models.Collections.EmailTemplate) + q, err := p.db.Query(query, &gocb.QueryOptions{ Context: ctx, ScanConsistency: gocb.QueryScanConsistencyRequestPlus, PositionalParameters: []interface{}{eventName}, diff --git a/server/db/providers/couchbase/env.go b/server/db/providers/couchbase/env.go index db52a6b..50b2e84 100644 --- a/server/db/providers/couchbase/env.go +++ b/server/db/providers/couchbase/env.go @@ -32,10 +32,9 @@ func (p *provider) AddEnv(ctx context.Context, env models.Env) (models.Env, erro // UpdateEnv to update environment information in database func (p *provider) UpdateEnv(ctx context.Context, env models.Env) (models.Env, error) { env.UpdatedAt = time.Now().Unix() - scope := p.db.Scope("_default") - updateEnvQuery := fmt.Sprintf("UPDATE auth._default.%s SET env = $1, updated_at = $2 WHERE _id = $3", models.Collections.Env) - _, err := scope.Query(updateEnvQuery, &gocb.QueryOptions{ + updateEnvQuery := fmt.Sprintf("UPDATE %s.%s SET env = $1, updated_at = $2 WHERE _id = $3", p.scopeName, models.Collections.Env) + _, err := p.db.Query(updateEnvQuery, &gocb.QueryOptions{ Context: ctx, PositionalParameters: []interface{}{env.EnvData, env.UpdatedAt, env.UpdatedAt, env.ID}, }) @@ -50,10 +49,11 @@ func (p *provider) UpdateEnv(ctx context.Context, env models.Env) (models.Env, e // GetEnv to get environment information from database func (p *provider) GetEnv(ctx context.Context) (models.Env, error) { var env models.Env - scope := p.db.Scope("_default") - query := fmt.Sprintf("SELECT _id, env, created_at, updated_at FROM auth._default.%s LIMIT 1", models.Collections.Env) - q, err := scope.Query(query, &gocb.QueryOptions{ - Context: ctx, + + query := fmt.Sprintf("SELECT _id, env, created_at, updated_at FROM %s.%s LIMIT 1", p.scopeName, models.Collections.Env) + q, err := p.db.Query(query, &gocb.QueryOptions{ + Context: ctx, + ScanConsistency: gocb.QueryScanConsistencyRequestPlus, }) if err != nil { return env, err diff --git a/server/db/providers/couchbase/otp.go b/server/db/providers/couchbase/otp.go index 5977b5d..cdcfde9 100644 --- a/server/db/providers/couchbase/otp.go +++ b/server/db/providers/couchbase/otp.go @@ -40,8 +40,8 @@ func (p *provider) UpsertOTP(ctx context.Context, otpParam *models.OTP) (*models return otp, err } } else { - query := fmt.Sprintf(`UPDATE auth._default.%s SET otp=$1, expires_at=$2, updated_at=$3 WHERE _id=$4`, models.Collections.OTP) - _, err := p.db.Scope("_default").Query(query, &gocb.QueryOptions{ + query := fmt.Sprintf(`UPDATE %s.%s SET otp=$1, expires_at=$2, updated_at=$3 WHERE _id=$4`, p.scopeName, models.Collections.OTP) + _, err := p.db.Query(query, &gocb.QueryOptions{ PositionalParameters: []interface{}{otp.Otp, otp.ExpiresAt, otp.UpdatedAt, otp.ID}, }) if err != nil { @@ -54,8 +54,8 @@ func (p *provider) UpsertOTP(ctx context.Context, otpParam *models.OTP) (*models // GetOTPByEmail to get otp for a given email address func (p *provider) GetOTPByEmail(ctx context.Context, emailAddress string) (*models.OTP, error) { otp := models.OTP{} - query := fmt.Sprintf(`SELECT _id, email, otp, expires_at, created_at, updated_at FROM auth._default.%s WHERE email = $1 LIMIT 1`, models.Collections.OTP) - q, err := p.db.Scope("_default").Query(query, &gocb.QueryOptions{ + query := fmt.Sprintf(`SELECT _id, email, otp, expires_at, created_at, updated_at FROM %s.%s WHERE email = $1 LIMIT 1`, p.scopeName, models.Collections.OTP) + q, err := p.db.Query(query, &gocb.QueryOptions{ ScanConsistency: gocb.QueryScanConsistencyRequestPlus, PositionalParameters: []interface{}{emailAddress}, }) diff --git a/server/db/providers/couchbase/provider.go b/server/db/providers/couchbase/provider.go index 507c0d9..7496a53 100644 --- a/server/db/providers/couchbase/provider.go +++ b/server/db/providers/couchbase/provider.go @@ -1,6 +1,7 @@ package couchbase import ( + "fmt" "os" "github.com/authorizerdev/authorizer/server/constants" @@ -10,7 +11,8 @@ import ( // TODO change following provider to new db provider type provider struct { - db *gocb.Bucket + db *gocb.Scope + scopeName string } // NewProvider returns a new SQL provider @@ -18,6 +20,8 @@ type provider struct { func NewProvider() (*provider, error) { // scopeName := os.Getenv(constants.EnvCouchbaseScope) bucketName := os.Getenv(constants.EnvCouchbaseBucket) + scopeName := os.Getenv(constants.EnvCouchbaseScope) + dbURL := memorystore.RequiredEnvStoreObj.GetRequiredEnv().DatabaseURL userName := memorystore.RequiredEnvStoreObj.GetRequiredEnv().DatabaseUsername password := memorystore.RequiredEnvStoreObj.GetRequiredEnv().DatabasePassword @@ -30,8 +34,8 @@ func NewProvider() (*provider, error) { if err != nil { return nil, err } - bucket := cluster.Bucket(bucketName) - + bucket := cluster.Bucket(bucketName).Scope(scopeName) + scopeName = fmt.Sprintf("%s.%s", bucketName, scopeName) // v := reflect.ValueOf(models.Collections) // fmt.Println("called in v", v) @@ -53,6 +57,7 @@ func NewProvider() (*provider, error) { // } // fmt.Println("called in oprovuider") return &provider{ - db: bucket, + db: bucket, + scopeName: scopeName, }, nil } diff --git a/server/db/providers/couchbase/shared.go b/server/db/providers/couchbase/shared.go index c9de5d2..80b7723 100644 --- a/server/db/providers/couchbase/shared.go +++ b/server/db/providers/couchbase/shared.go @@ -44,11 +44,11 @@ func GetSetFields(webhookMap map[string]interface{}) (string, map[string]interfa return updateFields, params } -func GetTotalDocs(ctx context.Context, scope *gocb.Scope, collection string) (error, int64) { +func (p *provider) GetTotalDocs(ctx context.Context, collection string) (error, int64) { totalDocs := TotalDocs{} - countQuery := fmt.Sprintf("SELECT COUNT(*) as Total FROM auth._default.%s", collection) - queryRes, err := scope.Query(countQuery, &gocb.QueryOptions{ + countQuery := fmt.Sprintf("SELECT COUNT(*) as Total FROM %s.%s", p.scopeName, collection) + queryRes, err := p.db.Query(countQuery, &gocb.QueryOptions{ Context: ctx, }) diff --git a/server/db/providers/couchbase/user.go b/server/db/providers/couchbase/user.go index 7ea0342..775f3ff 100644 --- a/server/db/providers/couchbase/user.go +++ b/server/db/providers/couchbase/user.go @@ -69,16 +69,16 @@ func (p *provider) DeleteUser(ctx context.Context, user models.User) error { func (p *provider) ListUsers(ctx context.Context, pagination model.Pagination) (*model.Users, error) { users := []*model.User{} paginationClone := pagination - scope := p.db.Scope("_default") - userQuery := fmt.Sprintf("SELECT _id, email, email_verified_at, `password`, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, created_at, updated_at FROM auth._default.%s ORDER BY id OFFSET $1 LIMIT $2", models.Collections.User) - queryResult, err := scope.Query(userQuery, &gocb.QueryOptions{ + userQuery := fmt.Sprintf("SELECT _id, email, email_verified_at, `password`, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, created_at, updated_at FROM %s.%s ORDER BY id OFFSET $1 LIMIT $2", p.scopeName, models.Collections.User) + + queryResult, err := p.db.Query(userQuery, &gocb.QueryOptions{ ScanConsistency: gocb.QueryScanConsistencyRequestPlus, Context: ctx, PositionalParameters: []interface{}{paginationClone.Offset, paginationClone.Limit}, }) - _, paginationClone.Total = GetTotalDocs(ctx, scope, models.Collections.User) + _, paginationClone.Total = p.GetTotalDocs(ctx, models.Collections.User) if err != nil { return nil, err @@ -107,8 +107,8 @@ func (p *provider) ListUsers(ctx context.Context, pagination model.Pagination) ( // GetUserByEmail to get user information from database using email address func (p *provider) GetUserByEmail(ctx context.Context, email string) (models.User, error) { user := models.User{} - query := fmt.Sprintf("SELECT _id, email, email_verified_at, `password`, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, created_at, updated_at FROM auth._default.%s WHERE email = $1 LIMIT 1", models.Collections.User) - q, err := p.db.Scope("_default").Query(query, &gocb.QueryOptions{ + query := fmt.Sprintf("SELECT _id, email, email_verified_at, `password`, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, created_at, updated_at FROM %s.%s WHERE email = $1 LIMIT 1", p.scopeName, models.Collections.User) + q, err := p.db.Query(query, &gocb.QueryOptions{ ScanConsistency: gocb.QueryScanConsistencyRequestPlus, Context: ctx, PositionalParameters: []interface{}{email}, @@ -128,8 +128,8 @@ func (p *provider) GetUserByEmail(ctx context.Context, email string) (models.Use // GetUserByID to get user information from database using user ID func (p *provider) GetUserByID(ctx context.Context, id string) (models.User, error) { user := models.User{} - query := fmt.Sprintf("SELECT _id, email, email_verified_at, `password`, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, created_at, updated_at FROM auth._default.%s WHERE _id = $1 LIMIT 1", models.Collections.User) - q, err := p.db.Scope("_default").Query(query, &gocb.QueryOptions{ + query := fmt.Sprintf("SELECT _id, email, email_verified_at, `password`, signup_methods, given_name, family_name, middle_name, nickname, birthdate, phone_number, phone_number_verified_at, picture, roles, revoked_timestamp, is_multi_factor_auth_enabled, created_at, updated_at FROM %s.%s WHERE _id = $1 LIMIT 1", p.scopeName, models.Collections.User) + q, err := p.db.Query(query, &gocb.QueryOptions{ ScanConsistency: gocb.QueryScanConsistencyRequestPlus, Context: ctx, PositionalParameters: []interface{}{id}, @@ -156,9 +156,9 @@ func (p *provider) UpdateUsers(ctx context.Context, data map[string]interface{}, if ids != nil && len(ids) > 0 { for _, id := range ids { params["id"] = id - userQuery := fmt.Sprintf("UPDATE auth._default.%s SET %s WHERE _id = $id", models.Collections.User, updateFields) + userQuery := fmt.Sprintf("UPDATE %s.%s SET %s WHERE _id = $id", p.scopeName, models.Collections.User, updateFields) - _, err := p.db.Scope("_default").Query(userQuery, &gocb.QueryOptions{ + _, err := p.db.Query(userQuery, &gocb.QueryOptions{ ScanConsistency: gocb.QueryScanConsistencyRequestPlus, Context: ctx, NamedParameters: params, @@ -168,8 +168,8 @@ func (p *provider) UpdateUsers(ctx context.Context, data map[string]interface{}, } } } else { - userQuery := fmt.Sprintf("UPDATE auth._default.%s SET %s WHERE _id IS NOT NULL", models.Collections.User, updateFields) - _, err := p.db.Scope("_default").Query(userQuery, &gocb.QueryOptions{ + userQuery := fmt.Sprintf("UPDATE %s.%s SET %s WHERE _id IS NOT NULL", p.scopeName, models.Collections.User, updateFields) + _, err := p.db.Query(userQuery, &gocb.QueryOptions{ ScanConsistency: gocb.QueryScanConsistencyRequestPlus, Context: ctx, NamedParameters: params, diff --git a/server/db/providers/couchbase/verification_requests.go b/server/db/providers/couchbase/verification_requests.go index 7491e19..1bc368f 100644 --- a/server/db/providers/couchbase/verification_requests.go +++ b/server/db/providers/couchbase/verification_requests.go @@ -35,12 +35,11 @@ func (p *provider) AddVerificationRequest(ctx context.Context, verificationReque // GetVerificationRequestByToken to get verification request from database using token func (p *provider) GetVerificationRequestByToken(ctx context.Context, token string) (models.VerificationRequest, error) { verificationRequest := models.VerificationRequest{} - scope := p.db.Scope("_default") params := make(map[string]interface{}, 1) params["token"] = token - query := fmt.Sprintf("SELECT _id, token, identifier, expires_at, email, nonce, redirect_uri, created_at, updated_at FROM auth._default.%s WHERE token=$1 LIMIT 1", models.Collections.VerificationRequest) + query := fmt.Sprintf("SELECT _id, token, identifier, expires_at, email, nonce, redirect_uri, created_at, updated_at FROM %s.%s WHERE token=$1 LIMIT 1", p.scopeName, models.Collections.VerificationRequest) - queryResult, err := scope.Query(query, &gocb.QueryOptions{ + queryResult, err := p.db.Query(query, &gocb.QueryOptions{ Context: ctx, PositionalParameters: []interface{}{token}, ScanConsistency: gocb.QueryScanConsistencyRequestPlus, @@ -60,8 +59,8 @@ func (p *provider) GetVerificationRequestByToken(ctx context.Context, token stri // GetVerificationRequestByEmail to get verification request by email from database func (p *provider) GetVerificationRequestByEmail(ctx context.Context, email string, identifier string) (models.VerificationRequest, error) { - query := fmt.Sprintf("SELECT _id, identifier, token, expires_at, email, nonce, redirect_uri, created_at, updated_at FROM auth._default.%s WHERE email=$1 AND identifier=$2 LIMIT 1", models.Collections.VerificationRequest) - queryResult, err := p.db.Scope("_default").Query(query, &gocb.QueryOptions{ + query := fmt.Sprintf("SELECT _id, identifier, token, expires_at, email, nonce, redirect_uri, created_at, updated_at FROM %s.%s WHERE email=$1 AND identifier=$2 LIMIT 1", p.scopeName, models.Collections.VerificationRequest) + queryResult, err := p.db.Query(query, &gocb.QueryOptions{ Context: ctx, PositionalParameters: []interface{}{email, identifier}, ScanConsistency: gocb.QueryScanConsistencyRequestPlus, @@ -83,13 +82,12 @@ func (p *provider) GetVerificationRequestByEmail(ctx context.Context, email stri // ListVerificationRequests to get list of verification requests from database func (p *provider) ListVerificationRequests(ctx context.Context, pagination model.Pagination) (*model.VerificationRequests, error) { var verificationRequests []*model.VerificationRequest - scope := p.db.Scope("_default") paginationClone := pagination - _, paginationClone.Total = GetTotalDocs(ctx, scope, models.Collections.VerificationRequest) + _, paginationClone.Total = p.GetTotalDocs(ctx, models.Collections.VerificationRequest) - query := fmt.Sprintf("SELECT _id, env, created_at, updated_at FROM auth._default.%s OFFSET $1 LIMIT $2", models.Collections.VerificationRequest) - queryResult, err := scope.Query(query, &gocb.QueryOptions{ + query := fmt.Sprintf("SELECT _id, env, created_at, updated_at FROM %s.%s OFFSET $1 LIMIT $2", p.scopeName, models.Collections.VerificationRequest) + queryResult, err := p.db.Query(query, &gocb.QueryOptions{ Context: ctx, ScanConsistency: gocb.QueryScanConsistencyRequestPlus, PositionalParameters: []interface{}{paginationClone.Offset, paginationClone.Limit}, diff --git a/server/db/providers/couchbase/webhook.go b/server/db/providers/couchbase/webhook.go index ec4ad5a..42d2df3 100644 --- a/server/db/providers/couchbase/webhook.go +++ b/server/db/providers/couchbase/webhook.go @@ -36,11 +36,7 @@ func (p *provider) AddWebhook(ctx context.Context, webhook models.Webhook) (*mod // UpdateWebhook to update webhook func (p *provider) UpdateWebhook(ctx context.Context, webhook models.Webhook) (*model.Webhook, error) { - // params := make(map[string]interface{}, 1) - // params["webhook_id"] = webhook.ID - webhook.UpdatedAt = time.Now().Unix() - scope := p.db.Scope("_default") bytes, err := json.Marshal(webhook) if err != nil { @@ -57,9 +53,9 @@ func (p *provider) UpdateWebhook(ctx context.Context, webhook models.Webhook) (* updateFields, params := GetSetFields(webhookMap) - query := fmt.Sprintf(`UPDATE auth._default.%s SET %s WHERE _id='%s'`, models.Collections.Webhook, updateFields, webhook.ID) + query := fmt.Sprintf(`UPDATE %s.%s SET %s WHERE _id='%s'`, p.scopeName, models.Collections.Webhook, updateFields, webhook.ID) - _, err = scope.Query(query, &gocb.QueryOptions{ + _, err = p.db.Query(query, &gocb.QueryOptions{ Context: ctx, NamedParameters: params, }) @@ -76,16 +72,15 @@ func (p *provider) ListWebhook(ctx context.Context, pagination model.Pagination) webhooks := []*model.Webhook{} paginationClone := pagination - scope := p.db.Scope("_default") params := make(map[string]interface{}, 1) params["offset"] = paginationClone.Offset params["limit"] = paginationClone.Limit - query := fmt.Sprintf("SELECT _id, env, created_at, updated_at FROM auth._default.%s OFFSET $offset LIMIT $limit", models.Collections.Webhook) + query := fmt.Sprintf("SELECT _id, env, created_at, updated_at FROM %s.%s OFFSET $offset LIMIT $limit", p.scopeName, models.Collections.Webhook) - _, paginationClone.Total = GetTotalDocs(ctx, scope, models.Collections.Webhook) + _, paginationClone.Total = p.GetTotalDocs(ctx, models.Collections.Webhook) - queryResult, err := scope.Query(query, &gocb.QueryOptions{ + queryResult, err := p.db.Query(query, &gocb.QueryOptions{ Context: ctx, ScanConsistency: gocb.QueryScanConsistencyRequestPlus, NamedParameters: params, @@ -116,11 +111,12 @@ func (p *provider) ListWebhook(ctx context.Context, pagination model.Pagination) // GetWebhookByID to get webhook by id func (p *provider) GetWebhookByID(ctx context.Context, webhookID string) (*model.Webhook, error) { var webhook models.Webhook - scope := p.db.Scope("_default") + params := make(map[string]interface{}, 1) params["_id"] = webhookID - query := fmt.Sprintf(`SELECT _id, event_name, endpoint, headers, enabled, created_at, updated_at FROM auth._default.%s WHERE _id=$_id LIMIT 1`, models.Collections.Webhook) - q, err := scope.Query(query, &gocb.QueryOptions{ + + query := fmt.Sprintf(`SELECT _id, event_name, endpoint, headers, enabled, created_at, updated_at FROM %s.%s WHERE _id=$_id LIMIT 1`, p.scopeName, models.Collections.Webhook) + q, err := p.db.Query(query, &gocb.QueryOptions{ Context: ctx, ScanConsistency: gocb.QueryScanConsistencyRequestPlus, NamedParameters: params, @@ -142,9 +138,9 @@ func (p *provider) GetWebhookByEventName(ctx context.Context, eventName string) var webhook models.Webhook params := make(map[string]interface{}, 1) params["event_name"] = eventName - scope := p.db.Scope("_default") - query := fmt.Sprintf(`SELECT _id, event_name, endpoint, headers, enabled, created_at, updated_at FROM auth._default.%s WHERE event_name=$event_name LIMIT 1`, models.Collections.Webhook) - q, err := scope.Query(query, &gocb.QueryOptions{ + + query := fmt.Sprintf(`SELECT _id, event_name, endpoint, headers, enabled, created_at, updated_at FROM %s.%s WHERE event_name=$event_name LIMIT 1`, p.scopeName, models.Collections.Webhook) + q, err := p.db.Query(query, &gocb.QueryOptions{ Context: ctx, ScanConsistency: gocb.QueryScanConsistencyRequestPlus, NamedParameters: params, @@ -164,7 +160,7 @@ func (p *provider) GetWebhookByEventName(ctx context.Context, eventName string) // DeleteWebhook to delete webhook func (p *provider) DeleteWebhook(ctx context.Context, webhook *model.Webhook) error { - scope := p.db.Scope("_default") + params := make(map[string]interface{}, 1) params["webhook_id"] = webhook.ID removeOpt := gocb.RemoveOptions{ @@ -176,8 +172,8 @@ func (p *provider) DeleteWebhook(ctx context.Context, webhook *model.Webhook) er return err } - query := fmt.Sprintf(`DELETE FROM auth._default.%s WHERE webhook_id=$webhook_id`, models.Collections.WebhookLog) - _, err = scope.Query(query, &gocb.QueryOptions{ + query := fmt.Sprintf(`DELETE FROM %s.%s WHERE webhook_id=$webhook_id`, p.scopeName, models.Collections.WebhookLog) + _, err = p.db.Query(query, &gocb.QueryOptions{ Context: ctx, ScanConsistency: gocb.QueryScanConsistencyRequestPlus, NamedParameters: params, diff --git a/server/db/providers/couchbase/webhook_log.go b/server/db/providers/couchbase/webhook_log.go index 05e07e3..6957359 100644 --- a/server/db/providers/couchbase/webhook_log.go +++ b/server/db/providers/couchbase/webhook_log.go @@ -40,22 +40,21 @@ func (p *provider) ListWebhookLogs(ctx context.Context, pagination model.Paginat webhookLogs := []*model.WebhookLog{} params := make(map[string]interface{}, 1) - scope := p.db.Scope("_default") paginationClone := pagination params["webhookID"] = webhookID params["offset"] = paginationClone.Offset params["limit"] = paginationClone.Limit - _, paginationClone.Total = GetTotalDocs(ctx, scope, models.Collections.WebhookLog) + _, paginationClone.Total = p.GetTotalDocs(ctx, models.Collections.WebhookLog) if webhookID != "" { - query = fmt.Sprintf(`SELECT _id, http_status, response, request, webhook_id, created_at, updated_at FROM auth._default.%s WHERE webhook_id=$webhookID`, models.Collections.WebhookLog) + query = fmt.Sprintf(`SELECT _id, http_status, response, request, webhook_id, created_at, updated_at FROM %s.%s WHERE webhook_id=$webhookID`, p.scopeName, models.Collections.WebhookLog) } else { - query = fmt.Sprintf("SELECT _id, http_status, response, request, webhook_id, created_at, updated_at FROM auth._default.%s OFFSET $offset LIMIT $limit", models.Collections.WebhookLog) + query = fmt.Sprintf("SELECT _id, http_status, response, request, webhook_id, created_at, updated_at FROM %s.%s OFFSET $offset LIMIT $limit", p.scopeName, models.Collections.WebhookLog) } - queryResult, err := scope.Query(query, &gocb.QueryOptions{ + queryResult, err := p.db.Query(query, &gocb.QueryOptions{ Context: ctx, ScanConsistency: gocb.QueryScanConsistencyRequestPlus, NamedParameters: params, diff --git a/server/resolvers/admin_signup.go b/server/resolvers/admin_signup.go index c1dd5c1..8b4fd64 100644 --- a/server/resolvers/admin_signup.go +++ b/server/resolvers/admin_signup.go @@ -53,18 +53,21 @@ func AdminSignupResolver(ctx context.Context, params model.AdminSignupInput) (*m memorystore.Provider.UpdateEnvVariable(constants.EnvKeyAdminSecret, params.AdminSecret) // consvert EnvData to JSON storeData, err := memorystore.Provider.GetEnvStore() + if err != nil { log.Debug("Error getting env store: ", err) return res, err } env, err := db.Provider.GetEnv(ctx) + if err != nil { log.Debug("Failed to get env: ", err) return res, err } envData, err := crypto.EncryptEnvData(storeData) + if err != nil { log.Debug("Failed to encrypt envstore: ", err) return res, err @@ -77,6 +80,7 @@ func AdminSignupResolver(ctx context.Context, params model.AdminSignupInput) (*m } hashedKey, err := crypto.EncryptPassword(params.AdminSecret) + if err != nil { log.Debug("Failed to encrypt admin session key: ", err) return res, err diff --git a/server/test/resolvers_test.go b/server/test/resolvers_test.go index a35b754..60eb9b4 100644 --- a/server/test/resolvers_test.go +++ b/server/test/resolvers_test.go @@ -5,7 +5,6 @@ import ( "os" "strings" "testing" - "time" "github.com/authorizerdev/authorizer/server/constants" "github.com/authorizerdev/authorizer/server/db" @@ -37,7 +36,7 @@ func TestResolvers(t *testing.T) { } else { t.Log("waiting for docker containers to start...") // wait for docker containers to spun up - time.Sleep(30 * time.Second) + // time.Sleep(30 * time.Second) } testDb := "authorizer_test"