package ru.nbch.credit_tracker.utils;

import java.io.IOException;
import java.util.Optional;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class ZipUtils {
    public static Optional<ZipEntry> extractValidEntry(ZipInputStream inputStream) throws IOException {
        Optional<ZipEntry> zipEntry = Optional.empty();
        ZipEntry entry;
        while ((entry = inputStream.getNextEntry()) != null) {
            if (!entry.isDirectory()) {
                if (zipEntry.isPresent()) {
                    //если мы уже нашли валидный xml файл, то обработка всего файла недоступна, возвращаем пустой entry
                    return Optional.empty();
                }
                if (entry.getName().toLowerCase().endsWith(".xml")) { // Файл должен быть с расширением xml
                    zipEntry = Optional.of(entry);
                }
            }
            inputStream.closeEntry();
        }
        return zipEntry;
    }
}
