You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2022/08/18 08:30:20 UTC
[incubator-devlake] branch main updated: fix(tapd): modify changelo
This is an automated email from the ASF dual-hosted git repository.
abeizn 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 e43288e3 fix(tapd): modify changelo
e43288e3 is described below
commit e43288e37ddc45c0c27bb0606f650d25c32f82f6
Author: Yingchu Chen <yi...@merico.dev>
AuthorDate: Wed Aug 17 14:36:44 2022 +0800
fix(tapd): modify changelo
---
plugins/tapd/models/story_changelog.go | 2 ++
plugins/tapd/models/task_changelog.go | 2 ++
plugins/tapd/tasks/story_changelog_extractor.go | 33 ++++++++++++++++++------
plugins/tapd/tasks/task_changelog_extractor.go | 34 ++++++++++++++++++-------
4 files changed, 54 insertions(+), 17 deletions(-)
diff --git a/plugins/tapd/models/story_changelog.go b/plugins/tapd/models/story_changelog.go
index 28f58a30..1a04c6f9 100644
--- a/plugins/tapd/models/story_changelog.go
+++ b/plugins/tapd/models/story_changelog.go
@@ -45,6 +45,8 @@ type TapdStoryChangelogItemRes struct {
Field string `json:"field" gorm:"primaryKey;type:varchar(255)"`
ValueBeforeParsed json.RawMessage `json:"value_before_parsed"`
ValueAfterParsed json.RawMessage `json:"value_after_parsed"`
+ ValueBefore json.RawMessage `json:"value_before"`
+ ValueAfter json.RawMessage `json:"value_after"`
IterationIdFrom uint64
IterationIdTo uint64
common.NoPKModel
diff --git a/plugins/tapd/models/task_changelog.go b/plugins/tapd/models/task_changelog.go
index 5177c85f..29df87e3 100644
--- a/plugins/tapd/models/task_changelog.go
+++ b/plugins/tapd/models/task_changelog.go
@@ -58,6 +58,8 @@ type TapdTaskChangelogItemRes struct {
Field string `json:"field" gorm:"primaryKey;type:varchar(255)"`
ValueBeforeParsed json.RawMessage `json:"value_before_parsed"`
ValueAfterParsed json.RawMessage `json:"value_after_parsed"`
+ ValueBefore json.RawMessage `json:"value_before"`
+ ValueAfter json.RawMessage `json:"value_after"`
IterationIdFrom uint64
IterationIdTo uint64
common.NoPKModel
diff --git a/plugins/tapd/tasks/story_changelog_extractor.go b/plugins/tapd/tasks/story_changelog_extractor.go
index 5fd17cd1..64ce0889 100644
--- a/plugins/tapd/tasks/story_changelog_extractor.go
+++ b/plugins/tapd/tasks/story_changelog_extractor.go
@@ -56,22 +56,39 @@ func ExtractStoryChangelog(taskCtx core.SubTaskContext) error {
for _, fc := range storyChangelog.FieldChanges {
var item models.TapdStoryChangelogItem
var valueAfterMap interface{}
- if err = json.Unmarshal(fc.ValueAfterParsed, &valueAfterMap); err != nil {
- return nil, err
+ var valueBeforeMap interface{}
+ if fc.ValueAfterParsed == nil {
+ if err = json.Unmarshal(fc.ValueAfter, &valueAfterMap); err != nil {
+ return nil, err
+ }
+ } else {
+ if err = json.Unmarshal(fc.ValueAfterParsed, &valueAfterMap); err != nil {
+ return nil, err
+ }
}
- switch valueAfterMap.(type) {
- case map[string]interface{}:
- valueBeforeMap := map[string]string{}
- err = json.Unmarshal(fc.ValueBeforeParsed, &valueBeforeMap)
- if err != nil {
+ if fc.ValueBeforeParsed == nil {
+ if err = json.Unmarshal(fc.ValueBefore, &valueBeforeMap); err != nil {
+ return nil, err
+ }
+ } else {
+ if err = json.Unmarshal(fc.ValueBeforeParsed, &valueBeforeMap); err != nil {
return nil, err
}
+ }
+ switch valueAfterMap.(type) {
+ case map[string]interface{}:
for k, v := range valueAfterMap.(map[string]interface{}) {
item.ConnectionId = data.Options.ConnectionId
item.ChangelogId = storyChangelog.Id
item.Field = k
item.ValueAfterParsed = v.(string)
- item.ValueBeforeParsed = valueBeforeMap[k]
+ switch valueBeforeMap.(type) {
+ case map[string]interface{}:
+ item.ValueBeforeParsed = valueBeforeMap.(map[string]interface{})[k].(string)
+ default:
+ item.ValueBeforeParsed = valueBeforeMap.(string)
+ }
+ results = append(results, &item)
}
default:
item.ConnectionId = data.Options.ConnectionId
diff --git a/plugins/tapd/tasks/task_changelog_extractor.go b/plugins/tapd/tasks/task_changelog_extractor.go
index a081d2cb..a6d381e8 100644
--- a/plugins/tapd/tasks/task_changelog_extractor.go
+++ b/plugins/tapd/tasks/task_changelog_extractor.go
@@ -56,23 +56,39 @@ func ExtractTaskChangelog(taskCtx core.SubTaskContext) error {
for _, fc := range taskChangelog.FieldChanges {
var item models.TapdTaskChangelogItem
var valueAfterMap interface{}
- if err = json.Unmarshal(fc.ValueAfterParsed, &valueAfterMap); err != nil {
- return nil, err
+ var valueBeforeMap interface{}
+ if fc.ValueAfterParsed == nil {
+ if err = json.Unmarshal(fc.ValueAfter, &valueAfterMap); err != nil {
+ return nil, err
+ }
+ } else {
+ if err = json.Unmarshal(fc.ValueAfterParsed, &valueAfterMap); err != nil {
+ return nil, err
+ }
}
- switch valueAfterMap.(type) {
- case map[string]interface{}:
- valueBeforeMap := map[string]string{}
- err = json.Unmarshal(fc.ValueBeforeParsed, &valueBeforeMap)
- if err != nil {
+ if fc.ValueBeforeParsed == nil {
+ if err = json.Unmarshal(fc.ValueBefore, &valueBeforeMap); err != nil {
+ return nil, err
+ }
+ } else {
+ if err = json.Unmarshal(fc.ValueBeforeParsed, &valueBeforeMap); err != nil {
return nil, err
}
+ }
+ switch valueAfterMap.(type) {
+ case map[string]interface{}:
for k, v := range valueAfterMap.(map[string]interface{}) {
item.ConnectionId = data.Options.ConnectionId
item.ChangelogId = taskChangelog.Id
item.Field = k
item.ValueAfterParsed = v.(string)
- item.ValueBeforeParsed = valueBeforeMap[k]
- results = append(results, item)
+ switch valueBeforeMap.(type) {
+ case map[string]interface{}:
+ item.ValueBeforeParsed = valueBeforeMap.(map[string]interface{})[k].(string)
+ default:
+ item.ValueBeforeParsed = valueBeforeMap.(string)
+ }
+ results = append(results, &item)
}
default:
item.ConnectionId = data.Options.ConnectionId