From f6595e999fdf96c2bf6f8db98ca979736e2d0013 Mon Sep 17 00:00:00 2001 From: Jan Semmelink <jan@uafrica.com> Date: Mon, 25 Oct 2021 08:29:07 +0200 Subject: [PATCH] Proper support for CSV parsing in param values written as ["123","456"] --- api/context.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/api/context.go b/api/context.go index 637b60a..134c556 100644 --- a/api/context.go +++ b/api/context.go @@ -1,6 +1,7 @@ package api import ( + "encoding/csv" "encoding/json" "reflect" "strings" @@ -101,7 +102,12 @@ func (ctx apiContext) extract(name string, t reflect.Type, v reflect.Value) erro var paramStrValues []string if paramStrValue, isDefined := ctx.request.QueryStringParameters[n]; isDefined { if len(paramStrValue) >= 2 && paramStrValue[0] == '[' && paramStrValue[len(paramStrValue)-1] == ']' { - paramStrValues = strings.Split(paramStrValue[1:len(paramStrValue)-1], ",") //from [CSV] + csvReader := csv.NewReader(strings.NewReader(paramStrValue)) + var err error + paramStrValues, err = csvReader.Read() + if err != nil { + return errors.Wrapf(err, "invalid CSV") + } } else { paramStrValues = []string{paramStrValue} //single value } -- GitLab