Skip to content

Commit

Permalink
fix plugin http types & docs (#5494)
Browse files Browse the repository at this point in the history
  • Loading branch information
2547techno committed Jul 6, 2024
1 parent 0442b7a commit 93fbcbb
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 45 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
- Minor: Added drop indicator line while dragging in tables. (#5256)
- Minor: Add channel points indication for new bits power-up redemptions. (#5471)
- Minor: Added `/warn <username> <reason>` command for mods. This prevents the user from chatting until they acknowledge the warning. (#5474)
- Minor: Introduce HTTP API for plugins. (#5383, #5492)
- Minor: Introduce HTTP API for plugins. (#5383, #5492, #5494)
- Bugfix: Fixed tab move animation occasionally failing to start after closing a tab. (#5426)
- Bugfix: If a network request errors with 200 OK, Qt's error code is now reported instead of the HTTP status. (#5378)
- Bugfix: Fixed restricted users usernames not being clickable. (#5405)
Expand Down
43 changes: 19 additions & 24 deletions docs/plugin-meta.lua
Original file line number Diff line number Diff line change
Expand Up @@ -158,12 +158,27 @@ function c2.Channel.by_twitch_id(id) end

-- End src/controllers/plugins/api/ChannelRef.hpp

-- Begin src/controllers/plugins/api/HTTPRequest.hpp
-- Begin src/controllers/plugins/api/HTTPResponse.hpp

---@class HTTPResponse
---@field data string Data received from the server
---@field status integer? HTTP Status code returned by the server
---@field error string A somewhat human readable description of an error if such happened
HTTPResponse = {}

--- Returns the data. This is not guaranteed to be encoded using any
--- particular encoding scheme. It's just the bytes the server returned.
---
function HTTPResponse:data() end

--- Returns the status code.
---
function HTTPResponse:status() end

--- A somewhat human readable description of an error if such happened
---
function HTTPResponse:error() end

-- End src/controllers/plugins/api/HTTPResponse.hpp

-- Begin src/controllers/plugins/api/HTTPRequest.hpp

---@alias HTTPCallback fun(result: HTTPResponse): nil
---@class HTTPRequest
Expand Down Expand Up @@ -213,26 +228,6 @@ function HTTPRequest.create(method, url) end

-- End src/controllers/plugins/api/HTTPRequest.hpp

-- Begin src/controllers/plugins/api/HTTPResponse.hpp

---@class HTTPResponse
HTTPResponse = {}

--- Returns the data. This is not guaranteed to be encoded using any
--- particular encoding scheme. It's just the bytes the server returned.
---
function HTTPResponse:data() end

--- Returns the status code.
---
function HTTPResponse:status() end

--- A somewhat human readable description of an error if such happened
---
function HTTPResponse:error() end

-- End src/controllers/plugins/api/HTTPResponse.hpp

-- Begin src/common/network/NetworkCommon.hpp

---@alias HTTPMethod integer
Expand Down
16 changes: 4 additions & 12 deletions docs/wip-plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -420,14 +420,6 @@ It returns something like: `"ConnectionRefusedError"`, `"401"`.
This function returns the HTTP status code of the request or `nil` if there was
an error before a status code could be received.

```lua
{
data = "This is the data received from the server as a string",
status = 200, -- HTTP status code returned by the server or nil if no response was received because of an error
error = "A somewhat human readable description of an error if such happened"
}
```

#### `HTTPRequest`

Allows you to send an HTTP request to a URL. Do not create requests that you
Expand All @@ -443,7 +435,7 @@ containing a valid URL (ex. `https://example.com/path/to/api`).
```lua
local req = c2.HTTPRequest.create(c2.HTTPMethod.Get, "https://example.com")
req:on_success(function (res)
print(res.data)
print(res:data())
end)
req:execute()
```
Expand Down Expand Up @@ -496,12 +488,12 @@ request:set_header("Content-Type", "text/plain")
request:on_success(function (res)
print('Success!')
-- Data is in res.data
print(res.status)
print(res:status())
end)
request:on_error(function (res)
print('Error!')
print(res.status)
print(res.error)
print(res:status())
print(res:error())
end)
request:finally(function ()
print('Finally')
Expand Down
2 changes: 1 addition & 1 deletion src/controllers/plugins/LuaAPI.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,8 @@ struct CompletionEvent {
/**
* @includefile common/Channel.hpp
* @includefile controllers/plugins/api/ChannelRef.hpp
* @includefile controllers/plugins/api/HTTPRequest.hpp
* @includefile controllers/plugins/api/HTTPResponse.hpp
* @includefile controllers/plugins/api/HTTPRequest.hpp
* @includefile common/network/NetworkCommon.hpp
*/

Expand Down
7 changes: 0 additions & 7 deletions src/controllers/plugins/api/HTTPRequest.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,6 @@
namespace chatterino::lua::api {
// NOLINTBEGIN(readability-identifier-naming)

/**
* @lua@class HTTPResponse
* @lua@field data string Data received from the server
* @lua@field status integer? HTTP Status code returned by the server
* @lua@field error string A somewhat human readable description of an error if such happened
*/

/**
* @lua@alias HTTPCallback fun(result: HTTPResponse): nil
*/
Expand Down

0 comments on commit 93fbcbb

Please sign in to comment.