types: simplify return

master
nixo 2020-10-30 18:50:21 +01:00
parent 7b6b1f32d5
commit 1c8d815476
1 changed files with 12 additions and 13 deletions

View File

@ -59,19 +59,18 @@ function Request(data::String)
"""x
s = endswith(data, "\r\n") ? data[1:end-2] : data
m = match(reg, s)
if isnothing(m)
Request(nothing, nothing, nothing, nothing, nothing, false, data)
else
Request(something(m["protocol"], "gemini"),
m["host"], parse(Int, something(m["port"], "1965")),
# normpath prevents "./path" being different from "path", and
# resolves also "../". The only problem is that "./" is
# transformed to ".", so we filter it. the raw rapresentation
# is still there, if needed
isnothing(m["path"]) ? nothing : filter!(!=("."), split(normpath(m["path"]), "/")),
isnothing(m["query"]) ? nothing : unescape(m["query"]),
true, data)
end
isnothing(m) &&
return Request(nothing, nothing, nothing, nothing, nothing, false, data)
Request(something(m["protocol"], "gemini"),
m["host"], parse(Int, something(m["port"], "1965")),
# normpath prevents "./path" being different from "path", and
# resolves also "../". The only problem is that "./" is
# transformed to ".", so we filter it. the raw rapresentation
# is still there, if needed
isnothing(m["path"]) ? nothing : filter!(!=("."), split(normpath(m["path"]), "/")),
isnothing(m["query"]) ? nothing : unescape(m["query"]),
true, data)
end
function Request(protocol, host, port, path, query)