package com.airlock.iam.admin.app.infrastructure.servlet;

import com.airlock.iam.common.infrastructure.i18n.ClasspathI18nJsonLoader;
import com.airlock.iam.common.infrastructure.i18n.I18nCache;
import com.airlock.iam.common.infrastructure.i18n.I18nRequest;
import com.airlock.iam.common.infrastructure.i18n.I18nResource;
import com.airlock.iam.common.infrastructure.i18n.ResourceBundlerBasedJsonLoader;
import com.airlock.iam.common.infrastructure.i18n.I18nCache.CacheType;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public class I18nServlet extends HttpServlet {
   private final I18nCache cache = new I18nCache(
      new ClasspathI18nJsonLoader("/com/airlock/iam/admin/ui/i18n"), new ResourceBundlerBasedJsonLoader(), CacheType.MUTABLE
   );

   protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
      I18nRequest i18nRequest = I18nRequest.createI18nRequest(req, resp);
      I18nResource resource = this.cache.getResource(i18nRequest);
      resource.applyTo(i18nRequest);
   }
}
