Skip to content

Commit 100626e

Browse files
feat: parse & render status text
1 parent ee05dc5 commit 100626e

File tree

4 files changed

+9
-4
lines changed

4 files changed

+9
-4
lines changed

lua/rest-nvim/client/curl/cli.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ local parser = {}
4949
---@param str string
5050
---@return rest.Response.status
5151
function parser.parse_verbose_status(str)
52-
local version, code = str:match("^(%S+) (%d+)")
52+
local version, code, text = str:match("^(%S+) (%d+) ?(.*)")
5353
return {
5454
version = version,
5555
code = tonumber(code),
56-
-- status = status,
56+
text = text,
5757
}
5858
end
5959

lua/rest-nvim/response.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ local logger = require("rest-nvim.logger")
1212
---@class rest.Response.status
1313
---@field code number
1414
---@field version string
15+
---@field text string
1516

1617
-- TODO: format asynchronously
1718

lua/rest-nvim/ui/result.lua

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ local function render_request(req)
3737
return {
3838
"### " .. req.name,
3939
req_line,
40-
""
4140
}
4241
end
4342

@@ -58,13 +57,15 @@ local panes = {
5857
-- syntax_highlight(self.bufnr, "http")
5958
local lines = render_request(data.request)
6059
if data.response then
60+
table.insert(lines, ("%d %s %s"):format(data.response.status.code, data.response.status.version, data.response.status.text))
6161
local content_type = data.response.headers["content-type"]
6262
local body = res.try_format_body(content_type and content_type[1], data.response.body)
63+
table.insert(lines, "")
6364
table.insert(lines, "#+RES")
6465
vim.list_extend(lines, body)
6566
table.insert(lines, "#+END")
6667
else
67-
vim.list_extend(lines, { "# Loading..." })
68+
vim.list_extend(lines, { "", "# Loading..." })
6869
end
6970
set_lines(self.bufnr, lines)
7071
return false

spec/client_curl_cli_spec.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ describe("curl cli response parser", function()
115115
status = {
116116
version = "HTTP/1.1",
117117
code = 200,
118+
text = "OK",
118119
},
119120
statistics = {},
120121
headers = {
@@ -126,6 +127,7 @@ describe("curl cli response parser", function()
126127
end)
127128
end)
128129
describe("curl cli request", function()
130+
-- TODO: don't send actual request on test
129131
nio.tests.it("basic GET request", function()
130132
local response = curl
131133
.request({
@@ -144,6 +146,7 @@ describe("curl cli request", function()
144146
assert.same({
145147
version = "HTTP/2",
146148
code = 200,
149+
text = ""
147150
}, response.status)
148151
-- HACK: have no idea how to make sure it is table<string,string>
149152
assert.are_table(response.headers)

0 commit comments

Comments
 (0)