Skip to content

Commit

Permalink
fix: refs for cassandra db
Browse files Browse the repository at this point in the history
  • Loading branch information
lakhansamani committed Aug 1, 2023
1 parent 15a4be5 commit c2defdb
Show file tree
Hide file tree
Showing 47 changed files with 103 additions and 255 deletions.
6 changes: 3 additions & 3 deletions dashboard/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1222,9 +1222,9 @@
dependencies:
"is-arrayish" "^0.2.1"

"esbuild-linux-64@0.14.9":
"integrity" "sha512-WoEI+R6/PLZAxS7XagfQMFgRtLUi5cjqqU9VCfo3tnWmAXh/wt8QtUfCVVCcXVwZLS/RNvI19CtfjlrJU61nOg=="
"resolved" "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.9.tgz"
"esbuild-darwin-arm64@0.14.9":
"integrity" "sha512-3ue+1T4FR5TaAu4/V1eFMG8Uwn0pgAwQZb/WwL1X78d5Cy8wOVQ67KNH1lsjU+y/9AcwMKZ9x0GGNxBB4a1Rbw=="
"resolved" "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.9.tgz"
"version" "0.14.9"

"esbuild@^0.14.9":
Expand Down
16 changes: 2 additions & 14 deletions server/db/providers/arangodb/email_template.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,9 @@ func (p *provider) AddEmailTemplate(ctx context.Context, emailTemplate *models.E
emailTemplate.ID = uuid.New().String()
emailTemplate.Key = emailTemplate.ID
}

emailTemplate.Key = emailTemplate.ID
emailTemplate.CreatedAt = time.Now().Unix()
emailTemplate.UpdatedAt = time.Now().Unix()

emailTemplateCollection, _ := p.db.Collection(ctx, models.Collections.EmailTemplate)
_, err := emailTemplateCollection.CreateDocument(ctx, emailTemplate)
if err != nil {
Expand All @@ -33,13 +31,11 @@ func (p *provider) AddEmailTemplate(ctx context.Context, emailTemplate *models.E
// UpdateEmailTemplate to update EmailTemplate
func (p *provider) UpdateEmailTemplate(ctx context.Context, emailTemplate *models.EmailTemplate) (*model.EmailTemplate, error) {
emailTemplate.UpdatedAt = time.Now().Unix()

emailTemplateCollection, _ := p.db.Collection(ctx, models.Collections.EmailTemplate)
meta, err := emailTemplateCollection.UpdateDocument(ctx, emailTemplate.Key, emailTemplate)
if err != nil {
return nil, err
}

emailTemplate.Key = meta.Key
emailTemplate.ID = meta.ID.String()
return emailTemplate.AsAPIEmailTemplate(), nil
Expand All @@ -57,22 +53,18 @@ func (p *provider) ListEmailTemplate(ctx context.Context, pagination *model.Pagi
defer cursor.Close()
paginationClone := pagination
paginationClone.Total = cursor.Statistics().FullCount()

for {
var emailTemplate *models.EmailTemplate
meta, err := cursor.ReadDocument(ctx, &emailTemplate)

if arangoDriver.IsNoMoreDocuments(err) {
break
} else if err != nil {
return nil, err
}

if meta.Key != "" {
emailTemplates = append(emailTemplates, emailTemplate.AsAPIEmailTemplate())
}
}

return &model.EmailTemplates{
Pagination: paginationClone,
EmailTemplates: emailTemplates,
Expand All @@ -86,16 +78,14 @@ func (p *provider) GetEmailTemplateByID(ctx context.Context, emailTemplateID str
bindVars := map[string]interface{}{
"email_template_id": emailTemplateID,
}

cursor, err := p.db.Query(ctx, query, bindVars)
if err != nil {
return nil, err
}
defer cursor.Close()

for {
if !cursor.HasMore() {
if emailTemplate.Key == "" {
if emailTemplate == nil {
return nil, fmt.Errorf("email template not found")
}
break
Expand All @@ -115,16 +105,14 @@ func (p *provider) GetEmailTemplateByEventName(ctx context.Context, eventName st
bindVars := map[string]interface{}{
"event_name": eventName,
}

cursor, err := p.db.Query(ctx, query, bindVars)
if err != nil {
return nil, err
}
defer cursor.Close()

for {
if !cursor.HasMore() {
if emailTemplate.Key == "" {
if emailTemplate == nil {
return nil, fmt.Errorf("email template not found")
}
break
Expand Down
4 changes: 1 addition & 3 deletions server/db/providers/arangodb/env.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,14 @@ func (p *provider) UpdateEnv(ctx context.Context, env *models.Env) (*models.Env,
func (p *provider) GetEnv(ctx context.Context) (*models.Env, error) {
var env *models.Env
query := fmt.Sprintf("FOR d in %s RETURN d", models.Collections.Env)

cursor, err := p.db.Query(ctx, query, nil)
if err != nil {
return env, err
}
defer cursor.Close()

for {
if !cursor.HasMore() {
if env.Key == "" {
if env == nil {
return env, fmt.Errorf("config not found")
}
break
Expand Down
21 changes: 6 additions & 15 deletions server/db/providers/arangodb/otp.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,44 +44,38 @@ func (p *provider) UpsertOTP(ctx context.Context, otpParam *models.OTP) (*models
otp.Otp = otpParam.Otp
otp.ExpiresAt = otpParam.ExpiresAt
}

otp.UpdatedAt = time.Now().Unix()
otpCollection, _ := p.db.Collection(ctx, models.Collections.OTP)

var meta driver.DocumentMeta
var err error
if shouldCreate {
meta, err = otpCollection.CreateDocument(ctx, otp)
} else {
meta, err = otpCollection.UpdateDocument(ctx, otp.Key, otp)
}

if err != nil {
return nil, err
}

otp.Key = meta.Key
otp.ID = meta.ID.String()
return otp, nil
}

// GetOTPByEmail to get otp for a given email address
func (p *provider) GetOTPByEmail(ctx context.Context, emailAddress string) (*models.OTP, error) {
var otp models.OTP
var otp *models.OTP
query := fmt.Sprintf("FOR d in %s FILTER d.email == @email RETURN d", models.Collections.OTP)
bindVars := map[string]interface{}{
"email": emailAddress,
}

cursor, err := p.db.Query(ctx, query, bindVars)
if err != nil {
return nil, err
}
defer cursor.Close()

for {
if !cursor.HasMore() {
if otp.Key == "" {
if otp == nil {
return nil, fmt.Errorf("otp with given email not found")
}
break
Expand All @@ -91,13 +85,12 @@ func (p *provider) GetOTPByEmail(ctx context.Context, emailAddress string) (*mod
return nil, err
}
}

return &otp, nil
return otp, nil
}

// GetOTPByPhoneNumber to get otp for a given phone number
func (p *provider) GetOTPByPhoneNumber(ctx context.Context, phoneNumber string) (*models.OTP, error) {
var otp models.OTP
var otp *models.OTP
query := fmt.Sprintf("FOR d in %s FILTER d.phone_number == @phone_number RETURN d", models.Collections.OTP)
bindVars := map[string]interface{}{
"phone_number": phoneNumber,
Expand All @@ -109,7 +102,7 @@ func (p *provider) GetOTPByPhoneNumber(ctx context.Context, phoneNumber string)
defer cursor.Close()
for {
if !cursor.HasMore() {
if otp.Key == "" {
if otp == nil {
return nil, fmt.Errorf("otp with given phone_number not found")
}
break
Expand All @@ -119,8 +112,7 @@ func (p *provider) GetOTPByPhoneNumber(ctx context.Context, phoneNumber string)
return nil, err
}
}

return &otp, nil
return otp, nil
}

// DeleteOTP to delete otp
Expand All @@ -130,6 +122,5 @@ func (p *provider) DeleteOTP(ctx context.Context, otp *models.OTP) error {
if err != nil {
return err
}

return nil
}
11 changes: 0 additions & 11 deletions server/db/providers/arangodb/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ func NewProvider() (*provider, error) {
if err != nil {
return nil, err
}

var arangodb arangoDriver.Database
dbName := memorystore.RequiredEnvStoreObj.GetRequiredEnv().DatabaseName
arangodb_exists, err := arangoClient.DatabaseExists(ctx, dbName)
Expand All @@ -79,7 +78,6 @@ func NewProvider() (*provider, error) {
return nil, err
}
}

userCollectionExists, err := arangodb.CollectionExists(ctx, models.Collections.User)
if err != nil {
return nil, err
Expand Down Expand Up @@ -113,7 +111,6 @@ func NewProvider() (*provider, error) {
return nil, err
}
}

verificationRequestCollection, err := arangodb.Collection(ctx, models.Collections.VerificationRequest)
if err != nil {
return nil, err
Expand All @@ -136,15 +133,13 @@ func NewProvider() (*provider, error) {
return nil, err
}
}

sessionCollection, err := arangodb.Collection(ctx, models.Collections.Session)
if err != nil {
return nil, err
}
sessionCollection.EnsureHashIndex(ctx, []string{"user_id"}, &arangoDriver.EnsureHashIndexOptions{
Sparse: true,
})

envCollectionExists, err := arangodb.CollectionExists(ctx, models.Collections.Env)
if err != nil {
return nil, err
Expand All @@ -155,7 +150,6 @@ func NewProvider() (*provider, error) {
return nil, err
}
}

webhookCollectionExists, err := arangodb.CollectionExists(ctx, models.Collections.Webhook)
if err != nil {
return nil, err
Expand All @@ -166,7 +160,6 @@ func NewProvider() (*provider, error) {
return nil, err
}
}

webhookCollection, err := arangodb.Collection(ctx, models.Collections.Webhook)
if err != nil {
return nil, err
Expand All @@ -186,15 +179,13 @@ func NewProvider() (*provider, error) {
return nil, err
}
}

webhookLogCollection, err := arangodb.Collection(ctx, models.Collections.WebhookLog)
if err != nil {
return nil, err
}
webhookLogCollection.EnsureHashIndex(ctx, []string{"webhook_id"}, &arangoDriver.EnsureHashIndexOptions{
Sparse: true,
})

emailTemplateCollectionExists, err := arangodb.CollectionExists(ctx, models.Collections.EmailTemplate)
if err != nil {
return nil, err
Expand All @@ -205,7 +196,6 @@ func NewProvider() (*provider, error) {
return nil, err
}
}

emailTemplateCollection, err := arangodb.Collection(ctx, models.Collections.EmailTemplate)
if err != nil {
return nil, err
Expand All @@ -214,7 +204,6 @@ func NewProvider() (*provider, error) {
Unique: true,
Sparse: true,
})

otpCollectionExists, err := arangodb.CollectionExists(ctx, models.Collections.OTP)
if err != nil {
return nil, err
Expand Down
6 changes: 5 additions & 1 deletion server/db/providers/arangodb/session.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ func (p *provider) AddSession(ctx context.Context, session *models.Session) erro
session.ID = uuid.New().String()
session.Key = session.ID
}

session.CreatedAt = time.Now().Unix()
session.UpdatedAt = time.Now().Unix()
sessionCollection, _ := p.db.Collection(ctx, models.Collections.Session)
Expand All @@ -24,3 +23,8 @@ func (p *provider) AddSession(ctx context.Context, session *models.Session) erro
}
return nil
}

// DeleteSession to delete session information from database
func (p *provider) DeleteSession(ctx context.Context, userId string) error {
return nil
}
12 changes: 3 additions & 9 deletions server/db/providers/arangodb/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ func (p *provider) DeleteUser(ctx context.Context, user *models.User) error {
if err != nil {
return err
}

query := fmt.Sprintf(`FOR d IN %s FILTER d.user_id == @user_id REMOVE { _key: d._key } IN %s`, models.Collections.Session, models.Collections.Session)
bindVars := map[string]interface{}{
"user_id": user.Key,
Expand All @@ -83,7 +82,6 @@ func (p *provider) DeleteUser(ctx context.Context, user *models.User) error {
return err
}
defer cursor.Close()

return nil
}

Expand All @@ -93,16 +91,13 @@ func (p *provider) ListUsers(ctx context.Context, pagination *model.Pagination)
sctx := arangoDriver.WithQueryFullCount(ctx)

query := fmt.Sprintf("FOR d in %s SORT d.created_at DESC LIMIT %d, %d RETURN d", models.Collections.User, pagination.Offset, pagination.Limit)

cursor, err := p.db.Query(sctx, query, nil)
if err != nil {
return nil, err
}
defer cursor.Close()

paginationClone := pagination
paginationClone.Total = cursor.Statistics().FullCount()

for {
var user *models.User
meta, err := cursor.ReadDocument(ctx, &user)
Expand All @@ -115,7 +110,6 @@ func (p *provider) ListUsers(ctx context.Context, pagination *model.Pagination)
users = append(users, user.AsAPIUser())
}
}

return &model.Users{
Pagination: paginationClone,
Users: users,
Expand All @@ -136,7 +130,7 @@ func (p *provider) GetUserByEmail(ctx context.Context, email string) (*models.Us
defer cursor.Close()
for {
if !cursor.HasMore() {
if user.Key == "" {
if user == nil {
return user, fmt.Errorf("user not found")
}
break
Expand All @@ -163,7 +157,7 @@ func (p *provider) GetUserByID(ctx context.Context, id string) (*models.User, er
defer cursor.Close()
for {
if !cursor.HasMore() {
if user.Key == "" {
if user == nil {
return user, fmt.Errorf("user not found")
}
break
Expand Down Expand Up @@ -218,7 +212,7 @@ func (p *provider) GetUserByPhoneNumber(ctx context.Context, phoneNumber string)
defer cursor.Close()
for {
if !cursor.HasMore() {
if user.Key == "" {
if user == nil {
return nil, fmt.Errorf("user not found")
}
break
Expand Down
Loading

0 comments on commit c2defdb

Please sign in to comment.