This commit is contained in:
2018-09-24 23:02:20 +03:00
parent cdeb2f4da7
commit a6d3851bb3
2 changed files with 43 additions and 1 deletions

View File

@@ -8,7 +8,7 @@ repositories {
mavenCentral()
}
sourceCompatibility = 8
sourceCompatibility = 10
dependencies {
compileOnly 'javax.servlet:javax.servlet-api:4.0.1'

View File

@@ -0,0 +1,42 @@
package api;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@WebServlet("/api/orders")
public class Orders extends HttpServlet {
private static final long serialVersionUID = 1L;
private int lastOrderId = 0;
private Pattern orderPattern = Pattern.compile(".*\"orderNumber\":\\s*\"(.*)\".*");
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().format("%d", lastOrderId);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("application/json");
String order = req.getReader().lines().collect(Collectors.joining(" "));
int orderId = lastOrderId++;
Matcher matcher = orderPattern.matcher(order);
boolean matches = matcher.matches();
if (matches && matcher.groupCount() > 0) {
String orderNumber = matcher.group(1);
System.out.format("request data: %s, orderNumber: %s\n", order, orderNumber);
resp.getWriter().printf("{\"id\": %d, \"orderNumber\": \"%s\"}", orderId, orderNumber);
} else {
resp.getWriter().print("\"Invalid request\"");
}
}
}