diff --git a/pom.xml b/pom.xml
index 99f7439..c594d51 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,11 +45,13 @@
org.javawebstack
orm
1.0.2
+ provided
org.javawebstack
http-server
1.0.2
+ provided
org.junit.jupiter
diff --git a/src/main/java/org/javawebstack/webutils/middleware/ModelBindCheckMiddleware.java b/src/main/java/org/javawebstack/webutils/middleware/ModelBindCheckMiddleware.java
new file mode 100644
index 0000000..9bd79b3
--- /dev/null
+++ b/src/main/java/org/javawebstack/webutils/middleware/ModelBindCheckMiddleware.java
@@ -0,0 +1,33 @@
+package org.javawebstack.webutils.middleware;
+
+import org.javawebstack.httpserver.Exchange;
+import org.javawebstack.httpserver.handler.RequestHandler;
+
+import java.util.function.BiFunction;
+
+public class ModelBindCheckMiddleware implements RequestHandler {
+
+ private final BiFunction handler;
+
+ public ModelBindCheckMiddleware() {
+ this(ModelBindCheckMiddleware::defaultHandler);
+ }
+
+ public ModelBindCheckMiddleware(BiFunction handler) {
+ this.handler = handler;
+ }
+
+ public Object handle(Exchange exchange) {
+ for (String key : exchange.getPathVariables().keySet()) {
+ if (exchange.getPathVariables().get(key) == null)
+ return handler.apply(exchange, key);
+ }
+ return null;
+ }
+
+ private static Object defaultHandler(Exchange exchange, String key) {
+ exchange.status(404);
+ return "Not Found";
+ }
+
+}
diff --git a/src/main/java/org/javawebstack/webutils/middlewares/RateLimitMiddleware.java b/src/main/java/org/javawebstack/webutils/middleware/RateLimitMiddleware.java
similarity index 97%
rename from src/main/java/org/javawebstack/webutils/middlewares/RateLimitMiddleware.java
rename to src/main/java/org/javawebstack/webutils/middleware/RateLimitMiddleware.java
index 43afd36..4660b72 100644
--- a/src/main/java/org/javawebstack/webutils/middlewares/RateLimitMiddleware.java
+++ b/src/main/java/org/javawebstack/webutils/middleware/RateLimitMiddleware.java
@@ -1,9 +1,8 @@
-package org.javawebstack.webutils.middlewares;
+package org.javawebstack.webutils.middleware;
import org.javawebstack.httpserver.Exchange;
import org.javawebstack.httpserver.handler.Middleware;
-import java.util.HashMap;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
diff --git a/src/main/java/org/javawebstack/webutils/middleware/SerializedResponseTransformer.java b/src/main/java/org/javawebstack/webutils/middleware/SerializedResponseTransformer.java
deleted file mode 100644
index 1d40d78..0000000
--- a/src/main/java/org/javawebstack/webutils/middleware/SerializedResponseTransformer.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.javawebstack.webutils.middleware;
-
-import org.javawebstack.abstractdata.AbstractMapper;
-import org.javawebstack.abstractdata.NamingPolicy;
-import org.javawebstack.httpserver.Exchange;
-import org.javawebstack.httpserver.transformer.response.ResponseTransformer;
-
-public class SerializedResponseTransformer implements ResponseTransformer {
-
- private final AbstractMapper mapper;
- private boolean ignoreStrings;
-
- public SerializedResponseTransformer() {
- this((new AbstractMapper()).setNamingPolicy(NamingPolicy.SNAKE_CASE));
- }
-
- public SerializedResponseTransformer(AbstractMapper mapper) {
- this.ignoreStrings = false;
- this.mapper = mapper;
- }
-
- public SerializedResponseTransformer ignoreStrings() {
- this.ignoreStrings = true;
- return this;
- }
-
- public String transform(Exchange exchange, Object object) {
- if (object instanceof byte[]) {
- return null;
- } else {
- if (this.ignoreStrings && object instanceof String)
- return null;
- String accept = exchange.header("Accept");
-
- if (accept != null) {
- switch (accept.toLowerCase()) {
- case "application/x-yaml":
- case "application/yaml":
- case "text/yaml":
- case "text/x-yaml":
- exchange.contentType(accept);
- return this.mapper.toAbstract(object).toYaml();
- case "application/x-www-form-urlencoded":
- exchange.contentType(accept);
- return this.mapper.toAbstract(object).toFormDataString();
- }
- }
-
- exchange.contentType("application/json");
- return this.mapper.toAbstract(object).toJsonString();
- }
- }
-}