44 lines
1.4 KiB
Java
44 lines
1.4 KiB
Java
package com.magamochi.ingestion.service;
|
|
|
|
import static java.util.Objects.nonNull;
|
|
|
|
import com.magamochi.ingestion.model.dto.ProviderListDTO;
|
|
import com.magamochi.ingestion.model.entity.Provider;
|
|
import com.magamochi.ingestion.model.enumeration.ProviderStatus;
|
|
import com.magamochi.ingestion.model.repository.ProviderRepository;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@Service
|
|
@RequiredArgsConstructor
|
|
public class ProviderService {
|
|
private final ProviderRepository providerRepository;
|
|
|
|
public ProviderListDTO getProviders(Boolean manualImport) {
|
|
var providers = providerRepository.findAll();
|
|
|
|
if (nonNull(manualImport) && manualImport) {
|
|
providers = providers.stream().filter(Provider::getManualImport).toList();
|
|
}
|
|
|
|
return ProviderListDTO.from(providers);
|
|
}
|
|
|
|
public Provider getOrCreateProvider(String providerName) {
|
|
return getOrCreateProvider(providerName, true);
|
|
}
|
|
|
|
public Provider getOrCreateProvider(String providerName, Boolean supportsChapterFetch) {
|
|
return providerRepository
|
|
.findByNameIgnoreCase(providerName)
|
|
.orElseGet(
|
|
() ->
|
|
providerRepository.save(
|
|
Provider.builder()
|
|
.name(providerName)
|
|
.status(ProviderStatus.ACTIVE)
|
|
.supportsChapterFetch(supportsChapterFetch)
|
|
.build()));
|
|
}
|
|
}
|