From c31b9fdbc77fb920f4d4aaa846bcf37faa3c4878 Mon Sep 17 00:00:00 2001 From: sigma Date: Wed, 30 Mar 2022 16:35:30 +0900 Subject: [PATCH 1/7] =?UTF-8?q?feat=20common=20inserter=E3=81=AB=20[]strin?= =?UTF-8?q?g=20=E3=81=AE=E5=A0=B4=E5=90=88=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/inserter/common_inserter.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pkg/inserter/common_inserter.go b/pkg/inserter/common_inserter.go index 5d02e2e..c9a3ac5 100644 --- a/pkg/inserter/common_inserter.go +++ b/pkg/inserter/common_inserter.go @@ -92,6 +92,24 @@ func (c *CommonInserter) setRefs(item map[string]interface{}) map[string]interfa reg := regexp.MustCompile(`\#\{.*?\}`) for k, v := range item { switch vt := v.(type) { + case []string: + new := make([]string, len(vt)) + for i, vtv := range vt { + if strings.HasPrefix(vtv, "$") && !reg.MatchString(vtv) { + refID := strings.TrimPrefix(vtv, "$") + rv, ok := c.refIDs[refID] + if !ok { + log.Printf("%s was not found", refID) + } else { + new[i] = rv + } + } + n := c.replaceMultiRefs(vtv, reg) + if n != "" { + new[i] = n + } + } + item[k] = new case map[string]interface{}: for vtk, vtv := range vt { if strings.HasPrefix(vtk, "$") && !reg.MatchString(vtk) { From 3f105258aaa3158d115c91742b67897f6bf0c5f3 Mon Sep 17 00:00:00 2001 From: sigma Date: Wed, 30 Mar 2022 16:49:34 +0900 Subject: [PATCH 2/7] =?UTF-8?q?fix=20case=20[]interface{}=E3=81=A8?= =?UTF-8?q?=E3=81=97=E3=80=81=E3=82=AD=E3=83=A3=E3=82=B9=E3=83=88=E3=81=AE?= =?UTF-8?q?=E5=A4=B1=E6=95=97=E3=81=A7=E5=BC=BE=E3=81=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/inserter/common_inserter.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pkg/inserter/common_inserter.go b/pkg/inserter/common_inserter.go index c9a3ac5..017d6fd 100644 --- a/pkg/inserter/common_inserter.go +++ b/pkg/inserter/common_inserter.go @@ -30,6 +30,7 @@ func NewCommonInserter(client *firestore.Client) *CommonInserter { func (c *CommonInserter) CreateItem(ctx context.Context, cn, ID, refID string, item map[string]interface{}) error { item = c.tryParseDate(item) item = c.setRefs(item) + log.Print(item) var d *firestore.DocumentRef if ID == "" { @@ -92,11 +93,15 @@ func (c *CommonInserter) setRefs(item map[string]interface{}) map[string]interfa reg := regexp.MustCompile(`\#\{.*?\}`) for k, v := range item { switch vt := v.(type) { - case []string: + case []interface{}: new := make([]string, len(vt)) for i, vtv := range vt { - if strings.HasPrefix(vtv, "$") && !reg.MatchString(vtv) { - refID := strings.TrimPrefix(vtv, "$") + vStr, ok := vtv.(string) + if !ok { + break + } + if strings.HasPrefix(vStr, "$") && !reg.MatchString(vStr) { + refID := strings.TrimPrefix(vStr, "$") rv, ok := c.refIDs[refID] if !ok { log.Printf("%s was not found", refID) @@ -104,7 +109,7 @@ func (c *CommonInserter) setRefs(item map[string]interface{}) map[string]interfa new[i] = rv } } - n := c.replaceMultiRefs(vtv, reg) + n := c.replaceMultiRefs(vStr, reg) if n != "" { new[i] = n } From cbf9812fba3559464a3bac221e8be2c8a4ceeae4 Mon Sep 17 00:00:00 2001 From: sigma Date: Wed, 30 Mar 2022 17:19:11 +0900 Subject: [PATCH 3/7] =?UTF-8?q?fix=20str=E3=83=95=E3=83=A9=E3=82=B0?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=97=E3=80=81[]string=E3=81=A8?= =?UTF-8?q?=E3=81=97=E3=81=A6=E8=A6=8B=E5=81=9A=E3=81=9B=E3=81=AA=E3=81=84?= =?UTF-8?q?=E9=85=8D=E5=88=97=E3=81=AB=E5=AF=BE=E3=81=97=E3=81=A6=E5=87=A6?= =?UTF-8?q?=E7=90=86=E3=82=92=E8=A1=8C=E3=82=8F=E3=81=AA=E3=81=84=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/inserter/common_inserter.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/inserter/common_inserter.go b/pkg/inserter/common_inserter.go index 017d6fd..793a50c 100644 --- a/pkg/inserter/common_inserter.go +++ b/pkg/inserter/common_inserter.go @@ -30,7 +30,6 @@ func NewCommonInserter(client *firestore.Client) *CommonInserter { func (c *CommonInserter) CreateItem(ctx context.Context, cn, ID, refID string, item map[string]interface{}) error { item = c.tryParseDate(item) item = c.setRefs(item) - log.Print(item) var d *firestore.DocumentRef if ID == "" { @@ -95,9 +94,11 @@ func (c *CommonInserter) setRefs(item map[string]interface{}) map[string]interfa switch vt := v.(type) { case []interface{}: new := make([]string, len(vt)) + isStr := true for i, vtv := range vt { vStr, ok := vtv.(string) if !ok { + isStr = false break } if strings.HasPrefix(vStr, "$") && !reg.MatchString(vStr) { @@ -114,7 +115,9 @@ func (c *CommonInserter) setRefs(item map[string]interface{}) map[string]interfa new[i] = n } } - item[k] = new + if isStr { + item[k] = new + } case map[string]interface{}: for vtk, vtv := range vt { if strings.HasPrefix(vtk, "$") && !reg.MatchString(vtk) { From 4fd7582600c6bc1d98dfba45c425f477e48529d8 Mon Sep 17 00:00:00 2001 From: sigma Date: Wed, 30 Mar 2022 17:23:40 +0900 Subject: [PATCH 4/7] =?UTF-8?q?feat=20[]string=E3=81=A8int[]=E3=81=AEsampl?= =?UTF-8?q?e=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- samples/Survey/dummies.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/samples/Survey/dummies.js b/samples/Survey/dummies.js index 468f437..965371e 100644 --- a/samples/Survey/dummies.js +++ b/samples/Survey/dummies.js @@ -4,6 +4,8 @@ payload: { defaultOption: "$Option__dummy_0", optionsText: "/#{Option__dummy_0}/#{Option__dummy_0}/", + optionsArray: ["$Option__dummy_0", "#{Option__dummy_1}(default)"], + point: [10, 30], options: { $Option__dummy_0: true, $Option__dummy_1: true, From cbecb2520ffad3ef6569d901ad1ebcda5e85792f Mon Sep 17 00:00:00 2001 From: sigma Date: Fri, 1 Apr 2022 04:37:22 +0900 Subject: [PATCH 5/7] feat add sample --- samples/Survey/dummies.js | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/Survey/dummies.js b/samples/Survey/dummies.js index 965371e..a1d1394 100644 --- a/samples/Survey/dummies.js +++ b/samples/Survey/dummies.js @@ -6,6 +6,7 @@ optionsText: "/#{Option__dummy_0}/#{Option__dummy_0}/", optionsArray: ["$Option__dummy_0", "#{Option__dummy_1}(default)"], point: [10, 30], + postText: ["10", "30"], options: { $Option__dummy_0: true, $Option__dummy_1: true, From cde996672f78545513633c743c1585c221526d7b Mon Sep 17 00:00:00 2001 From: sigma Date: Fri, 1 Apr 2022 04:38:01 +0900 Subject: [PATCH 6/7] =?UTF-8?q?feat=20=E9=80=9A=E5=B8=B8=E3=81=AE[]string?= =?UTF-8?q?=E3=81=AF=E3=82=82=E3=81=A8=E3=81=AE=E9=85=8D=E5=88=97=E3=81=AB?= =?UTF-8?q?=E3=81=AA=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/inserter/common_inserter.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/inserter/common_inserter.go b/pkg/inserter/common_inserter.go index 793a50c..ef1a2da 100644 --- a/pkg/inserter/common_inserter.go +++ b/pkg/inserter/common_inserter.go @@ -30,6 +30,7 @@ func NewCommonInserter(client *firestore.Client) *CommonInserter { func (c *CommonInserter) CreateItem(ctx context.Context, cn, ID, refID string, item map[string]interface{}) error { item = c.tryParseDate(item) item = c.setRefs(item) + log.Print(item) var d *firestore.DocumentRef if ID == "" { @@ -109,11 +110,14 @@ func (c *CommonInserter) setRefs(item map[string]interface{}) map[string]interfa } else { new[i] = rv } + continue } n := c.replaceMultiRefs(vStr, reg) if n != "" { new[i] = n + continue } + new[i] = vStr } if isStr { item[k] = new From 01966192863a48d4068e48c50cb5983f9499d1fa Mon Sep 17 00:00:00 2001 From: sigma Date: Fri, 1 Apr 2022 04:48:00 +0900 Subject: [PATCH 7/7] fix delete log print --- pkg/inserter/common_inserter.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/inserter/common_inserter.go b/pkg/inserter/common_inserter.go index ef1a2da..6ab698d 100644 --- a/pkg/inserter/common_inserter.go +++ b/pkg/inserter/common_inserter.go @@ -30,7 +30,6 @@ func NewCommonInserter(client *firestore.Client) *CommonInserter { func (c *CommonInserter) CreateItem(ctx context.Context, cn, ID, refID string, item map[string]interface{}) error { item = c.tryParseDate(item) item = c.setRefs(item) - log.Print(item) var d *firestore.DocumentRef if ID == "" {