mirror of
https://github.com/yusing/godoxy.git
synced 2025-06-09 13:02:33 +02:00
fix rewrite omitting trailing slash, error msg update
This commit is contained in:
parent
adb41a80c5
commit
4aee44fe11
3 changed files with 9 additions and 4 deletions
|
@ -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)
|
||||||
|
|
Loading…
Add table
Reference in a new issue