package com.airlock.iam.common.infrastructure.factory;

import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.ws.rs.core.Context;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.ext.ContextResolver;
import jakarta.ws.rs.ext.Providers;
import org.glassfish.hk2.api.Factory;

public class ObjectMapperFactory implements Factory<ObjectMapper> {
   private final Providers providers;

   public ObjectMapperFactory(@Context Providers providers) {
      this.providers = providers;
   }

   public ObjectMapper provide() {
      ContextResolver<ObjectMapper> resolver = this.providers.getContextResolver(ObjectMapper.class, MediaType.valueOf("application/json"));
      return (ObjectMapper)resolver.getContext(null);
   }

   public void dispose(ObjectMapper mapper) {
   }
}
