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 <[email protected]>
AuthorDate: Fri Oct 21 10:14:07 2022 +0800

    refactor: feishu migration scripts (#3511)
    
    Refactor Feishu MigrationScripts
    
    Nddtfjiang <[email protected]>
---
 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),
        }
 }

Reply via email to