import java.io.IOException;

import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpsExchange;
import com.sun.net.httpserver.HttpHandler;

import java.io.OutputStream;
import java.io.*;
import java.util.*;


public class HtmlPage implements HttpHandler {

   private String confdir;

   public HtmlPage(String conf) {
      confdir = conf;
   }

   @Override
   public void handle(HttpExchange exchange) throws IOException {
      // HttpsExchange exchange = (HttpsExchange) ex;
      String response;
      // printRequestInfo(exchange);
      List<String> strlist = new ArrayList<String>();

      String requestMethod = exchange.getRequestMethod();
      String infopage = confdir + "/apirest.json";
      strlist.add("text/html");

      if (requestMethod.compareTo("GET") == 0 || requestMethod.compareTo("get") == 0) {
         response = getLocalPage(infopage);
         exchange.getResponseHeaders().put("content-type", strlist);
         exchange.sendResponseHeaders(200, response.getBytes().length);
         OutputStream os = exchange.getResponseBody();
         os.write(response.getBytes());
         os.close();
      } else {
         System.out.println("Operation not supported!");
         exchange.sendResponseHeaders(200, 0);
         OutputStream os = exchange.getResponseBody();
         os.close();
      }
   }

   private static String getLocalPage(String pageid) {
      String line;

      String answer = "";
      try {
         FileReader fileReader = new FileReader(pageid);

         BufferedReader bufferedReader = new BufferedReader(fileReader);

         while ((line = bufferedReader.readLine()) != null) {
            answer += line;
         }
         bufferedReader.close();
      } catch (FileNotFoundException ex) {
         System.out.println("Unable to open file '" + pageid + "'");
         return "fail";
      } catch (IOException ex) {
         System.out.println("Error reading file '" + pageid + "'");
         return "fail";
      }
      return answer;
   }


}