package com.airlock.iam.admin.application.service.user;

import jakarta.inject.Inject;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;

public final class UsersExportService {
   private final Map<String, UsersExporter> exporters;

   @Inject
   UsersExportService(List<UsersExporter> exporters) {
      this.exporters = exporters.stream().collect(Collectors.toMap(UsersExporter::exportType, Function.identity()));
   }

   public Optional<UsersExporter> getExporter(String exportType) {
      return StringUtils.isBlank(exportType) ? Optional.empty() : Optional.ofNullable(this.exporters.get(exportType));
   }
}
