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

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

commit 56ae0cb9ae69f9d95ee2ec15fd236932bc1ac811
Author: zhangliang <[email protected]>
AuthorDate: Thu Jun 2 16:03:09 2022 +0800

    fix: fix changelogs.from_value and changelogs.to_values to comply naming 
convention
---
 models/domainlayer/ticket/issue_history.go         | 60 ----------------------
 models/migrationscripts/register.go                |  1 +
 .../{register.go => updateSchemas20220602.go}      | 30 +++++++----
 plugins/jira/tasks/changelog_convertor.go          | 58 ++++++++++++++-------
 4 files changed, 59 insertions(+), 90 deletions(-)

diff --git a/models/domainlayer/ticket/issue_history.go 
b/models/domainlayer/ticket/issue_history.go
deleted file mode 100644
index 056762ec..00000000
--- a/models/domainlayer/ticket/issue_history.go
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package ticket
-
-import (
-       "time"
-
-       "github.com/apache/incubator-devlake/models/common"
-)
-
-type IssueStatusHistory struct {
-       common.NoPKModel
-       IssueId        string    `gorm:"primaryKey;type:varchar(255)"`
-       OriginalStatus string    `gorm:"primaryKey;type:varchar(255)"`
-       StartDate      time.Time `gorm:"primaryKey"`
-       EndDate        *time.Time
-}
-
-func (IssueStatusHistory) TableName() string {
-       return "issue_status_history"
-}
-
-type IssueAssigneeHistory struct {
-       common.NoPKModel
-       IssueId   string    `gorm:"primaryKey;type:varchar(255)"`
-       Assignee  string    `gorm:"primaryKey;type:varchar(255)"`
-       StartDate time.Time `gorm:"primaryKey"`
-       EndDate   *time.Time
-}
-
-func (IssueAssigneeHistory) TableName() string {
-       return "issue_assignee_history"
-}
-
-type IssueSprintsHistory struct {
-       common.NoPKModel
-       IssueId   string    `gorm:"primaryKey;type:varchar(255)"`
-       SprintId  string    `gorm:"primaryKey;type:varchar(255)"`
-       StartDate time.Time `gorm:"primaryKey"`
-       EndDate   *time.Time
-}
-
-func (IssueSprintsHistory) TableName() string {
-       return "issue_sprints_history"
-}
diff --git a/models/migrationscripts/register.go 
b/models/migrationscripts/register.go
index d7ee8e38..e014cc4e 100644
--- a/models/migrationscripts/register.go
+++ b/models/migrationscripts/register.go
@@ -27,5 +27,6 @@ func RegisterAll() {
                new(updateSchemas20220513), new(updateSchemas20220524), 
new(updateSchemas20220526),
                new(updateSchemas20220527),
                new(updateSchemas20220528),
+               new(updateSchemas20220602),
        }, "Framework")
 }
diff --git a/models/migrationscripts/register.go 
b/models/migrationscripts/updateSchemas20220602.go
similarity index 58%
copy from models/migrationscripts/register.go
copy to models/migrationscripts/updateSchemas20220602.go
index d7ee8e38..fed7eca3 100644
--- a/models/migrationscripts/register.go
+++ b/models/migrationscripts/updateSchemas20220602.go
@@ -17,15 +17,23 @@ limitations under the License.
 
 package migrationscripts
 
-import "github.com/apache/incubator-devlake/migration"
-
-// RegisterAll register all the migration scripts of framework
-func RegisterAll() {
-       migration.Register([]migration.Script{
-               new(initSchemas),
-               new(updateSchemas20220505), new(updateSchemas20220507), 
new(updateSchemas20220510),
-               new(updateSchemas20220513), new(updateSchemas20220524), 
new(updateSchemas20220526),
-               new(updateSchemas20220527),
-               new(updateSchemas20220528),
-       }, "Framework")
+import (
+       "context"
+
+       "github.com/apache/incubator-devlake/models/migrationscripts/archived"
+       "gorm.io/gorm"
+)
+
+type updateSchemas20220602 struct{}
+
+func (*updateSchemas20220602) Up(ctx context.Context, db *gorm.DB) error {
+       return db.Migrator().DropTable(&archived.IssueAssigneeHistory{}, 
&archived.IssueStatusHistory{}, &archived.IssueSprintsHistory{})
+}
+
+func (*updateSchemas20220602) Version() uint64 {
+       return 20220602154333
+}
+
+func (*updateSchemas20220602) Name() string {
+       return "drop tables: issue_assignee_history, issue_status_history, 
issue_sprints_history"
 }
diff --git a/plugins/jira/tasks/changelog_convertor.go 
b/plugins/jira/tasks/changelog_convertor.go
index 19693146..54f6ea8e 100644
--- a/plugins/jira/tasks/changelog_convertor.go
+++ b/plugins/jira/tasks/changelog_convertor.go
@@ -1,24 +1,9 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
 package tasks
 
 import (
        "reflect"
+       "strconv"
+       "strings"
        "time"
 
        "github.com/apache/incubator-devlake/models/domainlayer"
@@ -63,8 +48,9 @@ func ConvertChangelogs(taskCtx core.SubTaskContext) error {
        }
        defer cursor.Close()
        issueIdGenerator := didgen.NewDomainIdGenerator(&models.JiraIssue{})
+       sprintIdGenerator := didgen.NewDomainIdGenerator(&models.JiraSprint{})
        changelogIdGenerator := 
didgen.NewDomainIdGenerator(&models.JiraChangelogItem{})
-
+       userIdGen := didgen.NewDomainIdGenerator(&models.JiraUser{})
        converter, err := helper.NewDataConverter(helper.DataConverterArgs{
                RawDataSubTaskArgs: helper.RawDataSubTaskArgs{
                        Ctx: taskCtx,
@@ -85,7 +71,7 @@ func ConvertChangelogs(taskCtx core.SubTaskContext) error {
                                        row.Field,
                                )},
                                IssueId:     
issueIdGenerator.Generate(row.ConnectionId, row.IssueId),
-                               AuthorId:    row.AuthorAccountId,
+                               AuthorId:    userIdGen.Generate(connectionId, 
row.AuthorAccountId),
                                AuthorName:  row.AuthorDisplayName,
                                FieldId:     row.FieldId,
                                FieldName:   row.Field,
@@ -93,6 +79,24 @@ func ConvertChangelogs(taskCtx core.SubTaskContext) error {
                                ToValue:     row.ToString,
                                CreatedDate: row.Created,
                        }
+                       if row.Field == "assignee" {
+                               if row.ToValue != "" {
+                                       changelog.ToValue = 
userIdGen.Generate(connectionId, row.ToValue)
+                               }
+                               if row.FromValue != "" {
+                                       changelog.FromValue = 
userIdGen.Generate(connectionId, row.FromValue)
+                               }
+                       }
+                       if row.Field == "Sprint" {
+                               changelog.FromValue, err = 
convertIds(row.FromValue, connectionId, sprintIdGenerator)
+                               if err != nil {
+                                       return nil, err
+                               }
+                               changelog.ToValue, err = 
convertIds(row.ToValue, connectionId, sprintIdGenerator)
+                               if err != nil {
+                                       return nil, err
+                               }
+                       }
                        return []interface{}{changelog}, nil
                },
        })
@@ -103,3 +107,19 @@ func ConvertChangelogs(taskCtx core.SubTaskContext) error {
 
        return converter.Execute()
 }
+
+func convertIds(ids string, connectionId uint64, sprintIdGenerator 
*didgen.DomainIdGenerator) (string, error) {
+       ss := strings.Split(ids, ",")
+       var resultSlice []string
+       for _, item := range ss {
+               item = strings.TrimSpace(item)
+               if item != "" {
+                       id, err := strconv.ParseUint(item, 10, 64)
+                       if err != nil {
+                               return "", err
+                       }
+                       resultSlice = append(resultSlice, 
sprintIdGenerator.Generate(connectionId, id))
+               }
+       }
+       return strings.Join(resultSlice, ","), nil
+}

Reply via email to