package org.expeditee.warp;

import org.eclipse.jetty.server.*;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.eclipse.jetty.websocket.server.WebSocketUpgradeHandler;
import org.eclipse.jetty.websocket.api.Session;
    
import org.eclipse.jetty.websocket.api.exceptions.WebSocketException;
//import org.eclipse.jetty.websocket.api.Callback;
    
    
import java.awt.*;
import java.io.IOException;
import java.net.URI;
    
import java.security.SecureRandom;
import java.time.Duration;
import java.util.Base64;
import java.util.concurrent.atomic.AtomicBoolean;

import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
//import java.nio.file.Paths;

import org.eclipse.jetty.http.HttpHeader;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Response;
import org.eclipse.jetty.server.handler.AbstractHandler;


import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.util.resource.ResourceFactory;



public class RootHandler extends AbstractHandler {

    @Override
    public boolean handle(Request request, Response response, org.eclipse.jetty.util.Callback callback) throws Exception {
	
        if (!"/".equals(request.getHttpURI().getPath())) {
            return false; // let other handlers try
        }

        String html = """
            <html>
            <head><title>Expeditee Warp Helper</title></head>
            <body>
              <h2>Expeditee Warp Helper Running</h2>
              <p>WebSocket endpoint: <code>/ws</code></p>
            </body>
            </html>
            """;

        response.setStatus(200);
        response.getHeaders().put(HttpHeader.CONTENT_TYPE, "text/html; charset=utf-8");

        byte[] bytes = html.getBytes(StandardCharsets.UTF_8);
        response.write(true, ByteBuffer.wrap(bytes), callback);
        return true;
    }
}

