48 lines
1.7 KiB
Java
48 lines
1.7 KiB
Java
package de.swingbe.rest_api.controller;
|
|
|
|
import java.io.IOException;
|
|
|
|
import javax.servlet.ServletException;
|
|
import javax.servlet.http.HttpServlet;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
import de.swingbe.rest_api.model.Person;
|
|
import de.swingbe.rest_api.storage.DataStore;
|
|
import org.json.JSONObject;
|
|
|
|
public class PersonServlet extends HttpServlet {
|
|
|
|
@Override
|
|
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
|
|
|
|
String requestUrl = request.getRequestURI();
|
|
String name = requestUrl.substring("/people/".length());
|
|
|
|
Person person = DataStore.getInstance().getPerson(name);
|
|
|
|
if (person != null) {
|
|
String json = "{\n";
|
|
json += "\"name\": " + JSONObject.quote(person.getName()) + ",\n";
|
|
json += "\"about\": " + JSONObject.quote(person.getAbout()) + ",\n";
|
|
json += "\"birthYear\": " + person.getBirthYear() + "\n";
|
|
json += "}";
|
|
response.getOutputStream().println(json);
|
|
} else {
|
|
//That person wasn't found, so return an empty JSON object. We could also return an error.
|
|
response.getOutputStream().println("{}");
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
|
|
|
|
String name = request.getParameter("name");
|
|
String about = request.getParameter("about");
|
|
int birthYear = Integer.parseInt(request.getParameter("birthYear"));
|
|
|
|
DataStore.getInstance().putPerson(new Person(name, about, birthYear));
|
|
}
|
|
}
|