You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by sp...@apache.org on 2021/11/08 02:52:14 UTC
[apisix] branch master updated: fix(admin): modify boolean
parameters with PATCH (#5434)
This is an automated email from the ASF dual-hosted git repository.
spacewander pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git
The following commit(s) were added to refs/heads/master by this push:
new cd29ba3 fix(admin): modify boolean parameters with PATCH (#5434)
cd29ba3 is described below
commit cd29ba3be7e4f57e9f348838fef8242c662772d5
Author: tzssangglass <tz...@gmail.com>
AuthorDate: Sun Nov 7 20:52:09 2021 -0600
fix(admin): modify boolean parameters with PATCH (#5434)
---
apisix/admin/init.lua | 2 +-
apisix/admin/routes.lua | 2 +-
t/admin/routes3.t | 82 +++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 84 insertions(+), 2 deletions(-)
diff --git a/apisix/admin/init.lua b/apisix/admin/init.lua
index f169d5a..9fec464 100644
--- a/apisix/admin/init.lua
+++ b/apisix/admin/init.lua
@@ -157,7 +157,7 @@ local function run()
if req_body then
local data, err = core.json.decode(req_body)
- if not data then
+ if err then
core.log.error("invalid request body: ", req_body, " err: ", err)
core.response.exit(400, {error_msg = "invalid request body: " .. err,
req_body = req_body})
diff --git a/apisix/admin/routes.lua b/apisix/admin/routes.lua
index bed0524..c3705d4 100644
--- a/apisix/admin/routes.lua
+++ b/apisix/admin/routes.lua
@@ -247,7 +247,7 @@ function _M.patch(id, conf, sub_path, args)
return 400, {error_msg = "missing route id"}
end
- if not conf then
+ if conf == nil then
return 400, {error_msg = "missing new configuration"}
end
diff --git a/t/admin/routes3.t b/t/admin/routes3.t
index 6f0b13f..02fbc87 100644
--- a/t/admin/routes3.t
+++ b/t/admin/routes3.t
@@ -700,3 +700,85 @@ passed
}
--- response_body
passed
+
+
+
+=== TEST 20: set route(id: 1, parameters with boolean values)
+--- config
+ location /t {
+ content_by_lua_block {
+ local t = require("lib.test_admin").test
+ local code, body = t('/apisix/admin/routes/1',
+ ngx.HTTP_PUT,
+ [[{
+ "uri": "/index.html",
+ "enable_websocket": true,
+ "upstream": {
+ "type": "roundrobin",
+ "nodes": {
+ "127.0.0.1:8080":1
+ }
+ }
+ }]])
+
+ ngx.say(body)
+ }
+ }
+--- response_body
+passed
+
+
+
+=== TEST 21: patch route(modify the boolean value of parameters to false)
+--- config
+ location /t {
+ content_by_lua_block {
+ local t = require("lib.test_admin").test
+ local code, body = t('/apisix/admin/routes/1/enable_websocket',
+ ngx.HTTP_PATCH,
+ 'false',
+ [[{
+ "node": {
+ "value": {
+ "enable_websocket": false
+ },
+ "key": "/apisix/routes/1"
+ },
+ "action": "compareAndSwap"
+ }]]
+ )
+
+ ngx.status = code
+ ngx.say(body)
+ }
+ }
+--- response_body
+passed
+
+
+
+=== TEST 22: patch route(modify the boolean value of parameters to true)
+--- config
+ location /t {
+ content_by_lua_block {
+ local t = require("lib.test_admin").test
+ local code, body = t('/apisix/admin/routes/1/enable_websocket',
+ ngx.HTTP_PATCH,
+ 'true',
+ [[{
+ "node": {
+ "value": {
+ "enable_websocket": true
+ },
+ "key": "/apisix/routes/1"
+ },
+ "action": "compareAndSwap"
+ }]]
+ )
+
+ ngx.status = code
+ ngx.say(body)
+ }
+ }
+--- response_body
+passed