Family-Map-Project / FamilyMapServer / FamilyMapServerStudent-master / src / handlers / LoadHandler.java
LoadHandler.java
Raw
package handlers;

import com.google.gson.Gson;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import dao.DataAccessException;
import request.LoadRequest;
import request.LoginRequest;
import result.LoadResult;
import result.LoginResult;
import services.LoadService;

import java.io.*;
import java.net.HttpURLConnection;

public class LoadHandler implements HttpHandler
{
    public void handle(HttpExchange exchange) throws IOException
    {
        try
        {
            if (exchange.getRequestMethod().equals("POST"))
            {
                Gson gson = new Gson();

                DefaultHandler handler = new DefaultHandler();

                InputStream reqBody = exchange.getRequestBody();
                String reqData = handler.readString(reqBody);

                LoadRequest request = (LoadRequest) gson.fromJson(reqData, LoadRequest.class);
                LoadService service = new LoadService();
                LoadResult result = service.load(request);

                if(!result.isSuccess())
                {
                    exchange.sendResponseHeaders(HttpURLConnection.HTTP_BAD_REQUEST, 0);
                }
                else
                {
                    exchange.sendResponseHeaders(HttpURLConnection.HTTP_OK, 0);
                }

                OutputStream resBody = exchange.getResponseBody();
                String jsonString = gson.toJson(result);
                handler.writeString(jsonString, resBody);
                resBody.close();
            }
        }
        catch (IOException | DataAccessException e)
        {
            exchange.sendResponseHeaders(HttpURLConnection.HTTP_SERVER_ERROR, 0);
            exchange.getResponseBody().close();
            e.printStackTrace();
        }
    }
}