package com.airlock.iam.application.webserver.infrastructure.deploy;

import com.airlock.iam.application.parameters.domain.model.H2Parameters;
import org.apache.catalina.Context;
import org.apache.catalina.Wrapper;
import org.apache.catalina.startup.Tomcat;
import org.h2.server.web.JakartaWebServlet;

public final class H2Deployer implements Deployer {
   private final H2Parameters parameters;

   public H2Deployer(H2Parameters parameters) {
      this.parameters = parameters;
   }

   @Override
   public Context deploy(Tomcat tomcat) {
      Context context = tomcat.addContext(this.parameters.urlPath(), null);
      Wrapper wrapper = Tomcat.addServlet(context, "h2-console", new JakartaWebServlet());
      wrapper.addInitParameter("webAllowOthers", "");
      wrapper.addInitParameter("properties", this.parameters.dataDir().toString());
      wrapper.addMapping("/*");
      return context;
   }
}
