mirror of
https://github.com/yusing/godoxy.git
synced 2026-04-23 16:58:31 +02:00
fix rewrite omitting trailing slash, error msg update
This commit is contained in:
@@ -109,7 +109,7 @@ func (p *Provider) startRoute(parent task.Parent, r *R.Route) E.Error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start implements*task.TaskStarter.
|
// Start implements task.TaskStarter.
|
||||||
func (p *Provider) Start(parent task.Parent) E.Error {
|
func (p *Provider) Start(parent task.Parent) E.Error {
|
||||||
t := parent.Subtask("provider."+p.name, false)
|
t := parent.Subtask("provider."+p.name, false)
|
||||||
|
|
||||||
|
|||||||
@@ -54,10 +54,14 @@ func validateURLPath(args []string) (any, E.Error) {
|
|||||||
return nil, ErrExpectOneArg
|
return nil, ErrExpectOneArg
|
||||||
}
|
}
|
||||||
p := args[0]
|
p := args[0]
|
||||||
|
trailingSlash := len(p) > 1 && p[len(p)-1] == '/'
|
||||||
p, _, _ = strings.Cut(p, "#")
|
p, _, _ = strings.Cut(p, "#")
|
||||||
p = path.Clean(p)
|
p = path.Clean(p)
|
||||||
if len(p) == 0 {
|
if len(p) == 0 {
|
||||||
return "/", nil
|
return nil, ErrInvalidArguments.Withf("empty path")
|
||||||
|
}
|
||||||
|
if trailingSlash {
|
||||||
|
p += "/"
|
||||||
}
|
}
|
||||||
if p[0] != '/' {
|
if p[0] != '/' {
|
||||||
return nil, ErrInvalidArguments.Withf("must start with /")
|
return nil, ErrInvalidArguments.Withf("must start with /")
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ func Deserialize(src SerializedObject, dst any) E.Error {
|
|||||||
}
|
}
|
||||||
return errs.Error()
|
return errs.Error()
|
||||||
default:
|
default:
|
||||||
return ErrUnsupportedConversion.Subject("deserialize to " + dstT.String())
|
return ErrUnsupportedConversion.Subject("mapping to " + dstT.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -346,10 +346,11 @@ func ConvertString(src string, dst reflect.Value) (convertible bool, convErr E.E
|
|||||||
return true, E.From(parser.Parse(src))
|
return true, E.From(parser.Parse(src))
|
||||||
}
|
}
|
||||||
// yaml like
|
// yaml like
|
||||||
isMultiline := strings.ContainsRune(src, '\n')
|
|
||||||
var tmp any
|
var tmp any
|
||||||
switch dst.Kind() {
|
switch dst.Kind() {
|
||||||
case reflect.Slice:
|
case reflect.Slice:
|
||||||
|
src = strings.TrimSpace(src)
|
||||||
|
isMultiline := strings.ContainsRune(src, '\n')
|
||||||
// one liner is comma separated list
|
// one liner is comma separated list
|
||||||
if !isMultiline {
|
if !isMultiline {
|
||||||
values := strutils.CommaSeperatedList(src)
|
values := strutils.CommaSeperatedList(src)
|
||||||
|
|||||||
Reference in New Issue
Block a user