You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by kl...@apache.org on 2022/10/21 02:14:11 UTC

[incubator-devlake] branch main updated: refactor: feishu migration scripts (#3511)

This is an automated email from the ASF dual-hosted git repository.

klesh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/main by this push:
     new 6555b426a refactor: feishu migration scripts (#3511)
6555b426a is described below

commit 6555b426a25dfe5f4f7c8fb794c63332894720b3
Author: mappjzc <zh...@merico.dev>
AuthorDate: Fri Oct 21 10:14:07 2022 +0800

    refactor: feishu migration scripts (#3511)
    
    Refactor Feishu MigrationScripts
    
    Nddtfjiang <zh...@merico.dev>
---
 plugins/feishu/impl/impl.go                        |  6 ++--
 .../migrationscripts/20220714_add_init_tables.go   | 32 +++++++++++++---------
 plugins/feishu/models/migrationscripts/register.go |  8 ++----
 3 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/plugins/feishu/impl/impl.go b/plugins/feishu/impl/impl.go
index 20af9068c..09ab960d3 100644
--- a/plugins/feishu/impl/impl.go
+++ b/plugins/feishu/impl/impl.go
@@ -19,12 +19,12 @@ package impl
 
 import (
 	"fmt"
+
 	"github.com/apache/incubator-devlake/errors"
 
 	"github.com/spf13/viper"
 	"gorm.io/gorm"
 
-	"github.com/apache/incubator-devlake/migration"
 	"github.com/apache/incubator-devlake/plugins/core"
 	"github.com/apache/incubator-devlake/plugins/feishu/api"
 	"github.com/apache/incubator-devlake/plugins/feishu/models"
@@ -37,7 +37,7 @@ var _ core.PluginMeta = (*Feishu)(nil)
 var _ core.PluginInit = (*Feishu)(nil)
 var _ core.PluginTask = (*Feishu)(nil)
 var _ core.PluginApi = (*Feishu)(nil)
-var _ core.Migratable = (*Feishu)(nil)
+var _ core.PluginMigration = (*Feishu)(nil)
 var _ core.CloseablePluginTask = (*Feishu)(nil)
 
 type Feishu struct{}
@@ -123,7 +123,7 @@ func (plugin Feishu) RootPkgPath() string {
 	return "github.com/apache/incubator-devlake/plugins/feishu"
 }
 
-func (plugin Feishu) MigrationScripts() []migration.Script {
+func (plugin Feishu) MigrationScripts() []core.MigrationScript {
 	return migrationscripts.All()
 }
 
diff --git a/plugins/feishu/models/migrationscripts/20220714_add_init_tables.go b/plugins/feishu/models/migrationscripts/20220714_add_init_tables.go
index ac441148d..ff67f1706 100644
--- a/plugins/feishu/models/migrationscripts/20220714_add_init_tables.go
+++ b/plugins/feishu/models/migrationscripts/20220714_add_init_tables.go
@@ -18,13 +18,12 @@ limitations under the License.
 package migrationscripts
 
 import (
-	"context"
 	"github.com/apache/incubator-devlake/errors"
+	"github.com/apache/incubator-devlake/helpers/migrationhelper"
 	"github.com/apache/incubator-devlake/plugins/core"
 	"github.com/apache/incubator-devlake/plugins/helper"
 
 	"github.com/apache/incubator-devlake/plugins/feishu/models/migrationscripts/archived"
-	"gorm.io/gorm"
 )
 
 type addInitTables struct {
@@ -35,37 +34,44 @@ func (u *addInitTables) SetConfigGetter(config core.ConfigGetter) {
 	u.config = config
 }
 
-func (u *addInitTables) Up(ctx context.Context, db *gorm.DB) errors.Error {
-	err := db.Migrator().DropTable(
+func (u *addInitTables) Up(basicRes core.BasicRes) errors.Error {
+	db := basicRes.GetDal()
+
+	err := db.DropTables(
 		&archived.FeishuConnection{},
 		&archived.FeishuMeetingTopUserItem{},
 	)
 	if err != nil {
-		return errors.Convert(err)
+		return err
 	}
-	err = db.Migrator().CreateTable(
+
+	err = migrationhelper.AutoMigrateTables(
+		basicRes,
 		&archived.FeishuConnection{},
 		&archived.FeishuMeetingTopUserItem{},
 	)
 	if err != nil {
-		return errors.Convert(err)
+		return err
 	}
 
-	encodeKey := u.config.GetString(core.EncodeKeyEnvStr)
+	encodeKey := basicRes.GetConfig(core.EncodeKeyEnvStr)
 	connection := &archived.FeishuConnection{}
-	connection.Endpoint = u.config.GetString(`FEISHU_ENDPOINT`)
-	connection.AppId = u.config.GetString(`FEISHU_APPID`)
-	connection.SecretKey = u.config.GetString(`FEISHU_APPSCRECT`)
+	connection.Endpoint = basicRes.GetConfig(`FEISHU_ENDPOINT`)
+	connection.AppId = basicRes.GetConfig(`FEISHU_APPID`)
+	connection.SecretKey = basicRes.GetConfig(`FEISHU_APPSCRECT`)
 	connection.Name = `Feishu`
 	if connection.Endpoint != `` && connection.AppId != `` && connection.SecretKey != `` && encodeKey != `` {
 		err = helper.UpdateEncryptFields(connection, func(plaintext string) (string, errors.Error) {
 			return core.Encrypt(encodeKey, plaintext)
 		})
 		if err != nil {
-			return errors.Convert(err)
+			return err
 		}
 		// update from .env and save to db
-		db.Create(connection)
+		err = db.CreateIfNotExist(connection)
+		if err != nil {
+			return err
+		}
 	}
 	return nil
 }
diff --git a/plugins/feishu/models/migrationscripts/register.go b/plugins/feishu/models/migrationscripts/register.go
index c1365f7d4..285020ce4 100644
--- a/plugins/feishu/models/migrationscripts/register.go
+++ b/plugins/feishu/models/migrationscripts/register.go
@@ -17,13 +17,11 @@ limitations under the License.
 
 package migrationscripts
 
-import (
-	"github.com/apache/incubator-devlake/migration"
-)
+import "github.com/apache/incubator-devlake/plugins/core"
 
 // All return all the migration scripts
-func All() []migration.Script {
-	return []migration.Script{
+func All() []core.MigrationScript {
+	return []core.MigrationScript{
 		new(addInitTables),
 	}
 }