strangedb-server/src/main/java/it/cavallium/strangedb/server/http/SetHandler.java
2019-03-09 18:53:33 +01:00

44 lines
1.3 KiB
Java

package it.cavallium.strangedb.server.http;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import it.cavallium.strangedb.server.Server;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
public class SetHandler implements HttpHandler {
private final Server server;
public SetHandler(Server server) {
this.server = server;
}
@Override
public void handle(HttpExchange exchange) throws IOException {
String requestPath = exchange.getRequestURI().toString().split("/set/", 2)[1].replace('(', '[').replace(')', ']');
String requestBody = new String(exchange.getRequestBody().readAllBytes(), StandardCharsets.UTF_8);
int responseCode = 500;
String response;
try {
if (exchange.getRequestMethod().equalsIgnoreCase("POST")) {
server.set(requestPath, requestBody);
response = "ok";
responseCode = 200;
} else {
response = "The request method is not a POST";
}
} catch (Exception ex) {
ex.printStackTrace();
response = "Error";
}
byte[] responseBytes = response.getBytes(StandardCharsets.UTF_8);
exchange.sendResponseHeaders(responseCode, responseBytes.length);
OutputStream os = exchange.getResponseBody();
os.write(responseBytes);
os.close();
}
}