This commit is contained in:
@@ -3,6 +3,7 @@ package ru.soune.nocopy.service.monitoring;
|
||||
import jakarta.mail.MessagingException;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.MessageSource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.soune.nocopy.configuration.search.SearchProperties;
|
||||
@@ -10,6 +11,8 @@ import ru.soune.nocopy.dto.file.YandexSearchResponse;
|
||||
import ru.soune.nocopy.dto.tarriff.TariffDTO;
|
||||
import ru.soune.nocopy.entity.monitoring.FileMonitoringEntity;
|
||||
import ru.soune.nocopy.entity.monitoring.MonitoringType;
|
||||
import ru.soune.nocopy.entity.notification.NotificationMessage;
|
||||
import ru.soune.nocopy.entity.notification.NotificationType;
|
||||
import ru.soune.nocopy.entity.tarif.TariffInfo;
|
||||
import ru.soune.nocopy.entity.tarif.TariffType;
|
||||
import ru.soune.nocopy.entity.user.User;
|
||||
@@ -17,6 +20,7 @@ import ru.soune.nocopy.exception.TariffNotFoundException;
|
||||
import ru.soune.nocopy.repository.FileMonitoringRepository;
|
||||
import ru.soune.nocopy.repository.UserRepository;
|
||||
import ru.soune.nocopy.service.mail.EmailService;
|
||||
import ru.soune.nocopy.service.notification.NotificationService;
|
||||
import ru.soune.nocopy.service.search.SearchImageService;
|
||||
import ru.soune.nocopy.service.tariff.TariffInfoService;
|
||||
import ru.soune.nocopy.service.tariff.TariffService;
|
||||
@@ -48,6 +52,10 @@ public class MonitoringSearchService {
|
||||
|
||||
private final SearchProperties searchProperties;
|
||||
|
||||
private final NotificationService notificationService;
|
||||
|
||||
private final MessageSource messageSource;
|
||||
|
||||
@Transactional(noRollbackFor = TariffNotFoundException.class)
|
||||
public void processFileSearch(FileMonitoringEntity monitoring) throws MessagingException, IOException {
|
||||
monitoring.setLastRun(LocalDateTime.now());
|
||||
@@ -134,15 +142,24 @@ public class MonitoringSearchService {
|
||||
int currentTokens = activeTariffInfo.getTokens() + activeTariffInfo.getBoughtTokens();
|
||||
|
||||
emailService.sendTokensNotFoundEmail(user, currentTokens, tariffMonitoring.getTokens());
|
||||
|
||||
monitoring.setLastRunStatus("ERROR: " + e.getMessage());
|
||||
|
||||
updateNextRun(monitoring);
|
||||
|
||||
monitoringRepository.save(monitoring);
|
||||
|
||||
notificationService.addNotification(NotificationType.TOKEN_NOT_FOUND, user.getId(),
|
||||
NotificationMessage.FILE_SEARCH.getMessageKey());
|
||||
} catch (Exception e) {
|
||||
User user = userRepository.findById(monitoring.getUserId()).orElseThrow();
|
||||
log.error("Error processing monitoring search", e);
|
||||
monitoring.setLastRunStatus("ERROR: " + e.getMessage());
|
||||
updateNextRun(monitoring);
|
||||
|
||||
monitoringRepository.save(monitoring);
|
||||
|
||||
notificationService.addNotification(NotificationType.SEARCH_OPERATION_FAILED, user.getId());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user