Skip to content
Prev Previous commit
Next Next commit
Drop ":" from variable/param name
  • Loading branch information
namolnad committed Jul 31, 2022
commit 3ff32c046a654259b5eda827158be254db99cb88
7 changes: 4 additions & 3 deletions Xcode/Sources/HttpRouter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -125,20 +125,21 @@ open class HttpRouter {
var currentIndex = index + 1
let variableNodes = node.nodes.filter { $0.0.first == ":" }
if let variableNode = variableNodes.first {
let paramName = String(variableNode.0.dropFirst())
if currentIndex == count && variableNode.1.isEndOfRoute {
// if it's the last element of the pattern and it's a variable, stop the search and
// append a tail as a value for the variable.
let tail = pattern[currentIndex..<count].joined(separator: "/")
if tail.count > 0 {
params[variableNode.0] = pathToken + "/" + tail
params[paramName] = pathToken + "/" + tail
} else {
params[variableNode.0] = pathToken
params[paramName] = pathToken
}

matchedNodes.append(variableNode.value)
return
}
params[variableNode.0] = pathToken
params[paramName] = pathToken
findHandler(&node.nodes[variableNode.0]!, params: &params, pattern: pattern, matchedNodes: &matchedNodes, index: currentIndex, count: count)
}

Expand Down