From 1fe0d658742fa0e7b95d61a453876c8b91a2b721 Mon Sep 17 00:00:00 2001 From: Lakhan Samani Date: Mon, 11 Jul 2022 22:37:07 +0530 Subject: [PATCH] feat: add support for planetscale Resolves #195 --- server/constants/db_types.go | 2 ++ server/db/models/session.go | 3 +-- server/db/models/webhook_log.go | 17 ++++++++--------- server/db/providers/sql/provider.go | 2 +- server/resolvers/delete_user.go | 5 +++++ 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/server/constants/db_types.go b/server/constants/db_types.go index 9cc64a5..72e2668 100644 --- a/server/constants/db_types.go +++ b/server/constants/db_types.go @@ -23,4 +23,6 @@ const ( DbTypeScyllaDB = "scylladb" // DbTypeCockroachDB is the cockroach database type DbTypeCockroachDB = "cockroachdb" + // DbTypePlanetScaleDB is the planetscale database type + DbTypePlanetScaleDB = "planetscale" ) diff --git a/server/db/models/session.go b/server/db/models/session.go index a495135..3591593 100644 --- a/server/db/models/session.go +++ b/server/db/models/session.go @@ -6,8 +6,7 @@ package models type Session struct { Key string `json:"_key,omitempty" bson:"_key,omitempty" cql:"_key,omitempty"` // for arangodb ID string `gorm:"primaryKey;type:char(36)" json:"_id" bson:"_id" cql:"id"` - UserID string `gorm:"type:char(36),index:" json:"user_id" bson:"user_id" cql:"user_id"` - User User `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-" bson:"-" cql:"-"` + UserID string `gorm:"type:char(36)" json:"user_id" bson:"user_id" cql:"user_id"` UserAgent string `json:"user_agent" bson:"user_agent" cql:"user_agent"` IP string `json:"ip" bson:"ip" cql:"ip"` CreatedAt int64 `json:"created_at" bson:"created_at" cql:"created_at"` diff --git a/server/db/models/webhook_log.go b/server/db/models/webhook_log.go index 8cce42e..0239bcb 100644 --- a/server/db/models/webhook_log.go +++ b/server/db/models/webhook_log.go @@ -6,15 +6,14 @@ import "github.com/authorizerdev/authorizer/server/graph/model" // WebhookLog model for db type WebhookLog struct { - Key string `json:"_key,omitempty" bson:"_key,omitempty" cql:"_key,omitempty"` // for arangodb - ID string `gorm:"primaryKey;type:char(36)" json:"_id" bson:"_id" cql:"id"` - HttpStatus int64 `json:"http_status" bson:"http_status" cql:"http_status"` - Response string `gorm:"type:text" json:"response" bson:"response" cql:"response"` - Request string `gorm:"type:text" json:"request" bson:"request" cql:"request"` - WebhookID string `gorm:"type:char(36),index:" json:"webhook_id" bson:"webhook_id" cql:"webhook_id"` - Webhook Webhook `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-" bson:"-" cql:"-"` - CreatedAt int64 `json:"created_at" bson:"created_at" cql:"created_at"` - UpdatedAt int64 `json:"updated_at" bson:"updated_at" cql:"updated_at"` + Key string `json:"_key,omitempty" bson:"_key,omitempty" cql:"_key,omitempty"` // for arangodb + ID string `gorm:"primaryKey;type:char(36)" json:"_id" bson:"_id" cql:"id"` + HttpStatus int64 `json:"http_status" bson:"http_status" cql:"http_status"` + Response string `gorm:"type:text" json:"response" bson:"response" cql:"response"` + Request string `gorm:"type:text" json:"request" bson:"request" cql:"request"` + WebhookID string `gorm:"type:char(36)" json:"webhook_id" bson:"webhook_id" cql:"webhook_id"` + CreatedAt int64 `json:"created_at" bson:"created_at" cql:"created_at"` + UpdatedAt int64 `json:"updated_at" bson:"updated_at" cql:"updated_at"` } func (w *WebhookLog) AsAPIWebhookLog() *model.WebhookLog { diff --git a/server/db/providers/sql/provider.go b/server/db/providers/sql/provider.go index 5e3aada..62e734c 100644 --- a/server/db/providers/sql/provider.go +++ b/server/db/providers/sql/provider.go @@ -50,7 +50,7 @@ func NewProvider() (*provider, error) { sqlDB, err = gorm.Open(postgres.Open(dbURL), ormConfig) case constants.DbTypeSqlite: sqlDB, err = gorm.Open(sqlite.Open(dbURL), ormConfig) - case constants.DbTypeMysql, constants.DbTypeMariaDB: + case constants.DbTypeMysql, constants.DbTypeMariaDB, constants.DbTypePlanetScaleDB: sqlDB, err = gorm.Open(mysql.Open(dbURL), ormConfig) case constants.DbTypeSqlserver: sqlDB, err = gorm.Open(sqlserver.Open(dbURL), ormConfig) diff --git a/server/resolvers/delete_user.go b/server/resolvers/delete_user.go index 96dd456..f6c030e 100644 --- a/server/resolvers/delete_user.go +++ b/server/resolvers/delete_user.go @@ -45,6 +45,11 @@ func DeleteUserResolver(ctx context.Context, params model.DeleteUserInput) (*mod return res, err } + err = db.Provider.DeleteSession(ctx, user.ID) + if err != nil { + return res, err + } + res = &model.Response{ Message: `user deleted successfully`, }