Skip to content

Commit 02b5cb9

Browse files
committed
feat common inserterにmap[string]interfaceの場合のkeyの差し替えを実装
1 parent 5c74658 commit 02b5cb9

File tree

3 files changed

+45
-0
lines changed

3 files changed

+45
-0
lines changed

pkg/inserter/common_inserter.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,19 @@ func (c *CommonInserter) tryParseDate(item map[string]interface{}) map[string]in
6868
func (c *CommonInserter) setRefs(item map[string]interface{}) map[string]interface{} {
6969
for k, v := range item {
7070
switch vt := v.(type) {
71+
case map[string]interface{}:
72+
for vtk, vtv := range vt {
73+
if strings.HasPrefix(vtk, "$") {
74+
refID := strings.TrimPrefix(vtk, "$")
75+
rk, ok := c.refIDs[refID]
76+
if !ok {
77+
log.Printf("%s was not found", refID)
78+
continue
79+
}
80+
vt[rk] = vtv
81+
delete(vt, vtk)
82+
}
83+
}
7184
case string:
7285
if strings.HasPrefix(vt, "$") {
7386
refID := strings.TrimPrefix(vt, "$")

samples/Option/dummies.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"versions": "1.0",
3+
"items": [
4+
{
5+
"ref": "Option__dummy_0",
6+
"payload": {
7+
"name": "選択肢0"
8+
}
9+
},
10+
{
11+
"ref": "Option__dummy_1",
12+
"payload": {
13+
"name": "選択肢1"
14+
}
15+
}
16+
]
17+
}

samples/Survey/dummies.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"version": "1.0",
3+
"items": [
4+
{
5+
"ref": "Foo__dummy_0",
6+
"payload": {
7+
"defaultOption": "$Option__dummy_0",
8+
"options": {
9+
"$Option__dummy_0": true,
10+
"$Option__dummy_1": true
11+
}
12+
}
13+
}
14+
]
15+
}

0 commit comments

Comments
 (0)