Skip to content

Commit 3f10525

Browse files
committed
fix case []interface{}とし、キャストの失敗で弾く
1 parent c31b9fd commit 3f10525

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

pkg/inserter/common_inserter.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ func NewCommonInserter(client *firestore.Client) *CommonInserter {
3030
func (c *CommonInserter) CreateItem(ctx context.Context, cn, ID, refID string, item map[string]interface{}) error {
3131
item = c.tryParseDate(item)
3232
item = c.setRefs(item)
33+
log.Print(item)
3334

3435
var d *firestore.DocumentRef
3536
if ID == "" {
@@ -92,19 +93,23 @@ func (c *CommonInserter) setRefs(item map[string]interface{}) map[string]interfa
9293
reg := regexp.MustCompile(`\#\{.*?\}`)
9394
for k, v := range item {
9495
switch vt := v.(type) {
95-
case []string:
96+
case []interface{}:
9697
new := make([]string, len(vt))
9798
for i, vtv := range vt {
98-
if strings.HasPrefix(vtv, "$") && !reg.MatchString(vtv) {
99-
refID := strings.TrimPrefix(vtv, "$")
99+
vStr, ok := vtv.(string)
100+
if !ok {
101+
break
102+
}
103+
if strings.HasPrefix(vStr, "$") && !reg.MatchString(vStr) {
104+
refID := strings.TrimPrefix(vStr, "$")
100105
rv, ok := c.refIDs[refID]
101106
if !ok {
102107
log.Printf("%s was not found", refID)
103108
} else {
104109
new[i] = rv
105110
}
106111
}
107-
n := c.replaceMultiRefs(vtv, reg)
112+
n := c.replaceMultiRefs(vStr, reg)
108113
if n != "" {
109114
new[i] = n
110115
}

0 commit comments

Comments
 (0)