Closed PluieM closed 3 weeks ago
The recent changes introduce enhanced JSON handling in the RuleSubController
class, update return types in IPBlackRuleList
for better data encapsulation, and expand the Lang
class with new string constants for IP ban rule updates and errors. These modifications aim to improve JSON parsing, enhance method responses, and provide more informative logging and error messages.
Files/Path | Change Summary |
---|---|
.../RuleSubController.java |
Imported JsonUtil and JsonObject ; updated methods to use JsonUtil for JSON parsing. |
.../IPBlackRuleList.java |
Modified updateRule method to return a Map<String, ? extends Serializable> instead of String . |
.../Lang.java |
Added new string constants for IP ban rule updates and errors; modified existing constants for dynamic values. |
sequenceDiagram
participant Client
participant RuleSubController
participant JsonUtil
participant IPBlackRuleList
participant Lang
Client->>RuleSubController: changeCheckInterval request
RuleSubController->>JsonUtil: Parse JSON body
JsonUtil-->>RuleSubController: Parsed data
RuleSubController->>IPBlackRuleList: Update rule with parsed data
IPBlackRuleList-->>RuleSubController: Success/Failure Map
RuleSubController->>Lang: Fetch appropriate message
Lang-->>RuleSubController: Message
RuleSubController-->>Client: Response with message
In the code where JSON flows, New methods bloom, as logic grows. IP rules now return with grace, A map of status, in their place. Strings of error, update cheer, In logs and messages, clear to hear. 🐰✨
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
感谢,还有2个点有待优化:
java.lang.NullPointerException: null
at java.base/java.util.Objects.requireNonNull(Unknown Source) ~[?:?]
at java.base/java.util.ImmutableCollections$MapN.<init>(Unknown Source) ~[?:?]
at java.base/java.util.Map.of(Unknown Source) ~[?:?]
at com.ghostchu.peerbanhelper.module.impl.webapi.RuleSubController.update(RuleSubController.java:144)
~[PeerBanHelper.jar:?]
at com.ghostchu.peerbanhelper.module.impl.webapi.RuleSubController.lambda$onEnable$2(RuleSubController
.java:56) ~[PeerBanHelper.jar:?]
at io.javalin.router.Endpoint.handle(Endpoint.kt:52) ~[PeerBanHelper.jar:?]
at io.javalin.router.ParsedEndpoint.handle(ParsedEndpoint.kt:15) ~[PeerBanHelper.jar:?]
at io.javalin.http.servlet.DefaultTasks.HTTP$lambda$9$lambda$7$lambda$6(DefaultTasks.kt:52) ~[PeerBanH
elper.jar:?]
at io.javalin.http.servlet.JavalinServlet.handleTask(JavalinServlet.kt:99) ~[PeerBanHelper.jar:?]
at io.javalin.http.servlet.JavalinServlet.handleSync(JavalinServlet.kt:64) ~[PeerBanHelper.jar:?]
at io.javalin.http.servlet.JavalinServlet.handle(JavalinServlet.kt:50) ~[PeerBanHelper.jar:?]
at io.javalin.http.servlet.JavalinServlet.service(JavalinServlet.kt:30) ~[PeerBanHelper.jar:?]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587) ~[PeerBanHelper.jar:?]
at io.javalin.jetty.JavalinJettyServlet.service(JavalinJettyServlet.kt:52) ~[PeerBanHelper.jar:?]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587) ~[PeerBanHelper.jar:?]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764) ~[PeerBanHelper.jar:?]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:529) ~[PeerBanHelper.jar:?]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) ~[PeerBanHelper.j
ar:?]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1580) ~[PeerBanHelper.
jar:?]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221) ~[PeerBanHelper.j
ar:?]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1381) ~[PeerBanHelper.
jar:?]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176) ~[PeerBanHelper.ja
r:?]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484) ~[PeerBanHelper.jar:?]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1553) ~[PeerBanHelper.j
ar:?]
查询更新间隔接口已加上,文档同步更新了。上面提到的错误暂时没有能复现,在几个有可能出现的地方做了一些校验
缺少参数时会直接崩溃,需要做好错误处理,这部分javalin应该有更简便的实现方式(自带校验),此外“保存规则”(https://apifox.com/apidoc/shared-b24f42a4-67f5-402a-900d-9fad3ae9917b/api-176455381)功能请求去除enable字段
查询间隔接口文档有误
查询更新间隔接口已加上,文档同步更新了。上面提到的错误暂时没有能复现,在几个有可能出现的地方做了一些校验
查询全部订阅规则更新日志 这个接口返回值里面包含分页,但是请求参数里面不包含分页,是否符合预期 @PluieM
Edit:
关于更新类型,IP_BAN_RULE_UPDATE_TYPE_AUTO
数据库中应该存储枚举类型而不是汉字,现在数据库中存储了手动更新
不利于本地化进行
@Gaojianli 请求中的formdata已调整为json,api文档同步更新完毕
Summary by CodeRabbit
New Features
Improvements