Добавить src/main/java/org/lanit/service/JsonProcessingService.java

This commit is contained in:
Шимченко 2025-09-12 05:47:34 +00:00
parent 56dca69f93
commit 5c88b9f534

View File

@ -0,0 +1,63 @@
package org.lanit.service;
import org.lanit.models.*;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
public class JsonProcessingService {
public Info processAdd(AddRequest request) {
Info info = request.getInfo();
Add add = request.getAdd();
List<Ticker> tickers = info.getTickers();
// Ищем тикер
Optional<Ticker> existingTicker = tickers.stream()
.filter(t -> t.getTicker().equals(add.getName()))
.findFirst();
Ticker targetTicker;
if (existingTicker.isPresent()) {
targetTicker = existingTicker.get();
} else {
// Создаем новый тикер
targetTicker = new Ticker();
targetTicker.setTicker(add.getName());
targetTicker.setAlerts(new java.util.ArrayList<>());
tickers.add(targetTicker);
}
// Создаем и добавляем оповещение
Alert newAlert = new Alert();
newAlert.setTimeFrame(add.getTimeFrame());
newAlert.setPercent(add.getPercent());
targetTicker.getAlerts().add(newAlert);
return info;
}
public Info processDelete(DeleteRequest request) {
Info info = request.getInfo();
Delete delete = request.getDelete();
List<Ticker> tickers = info.getTickers();
// Ищем тикер
Ticker targetTicker = tickers.stream()
.filter(t -> t.getTicker().equals(delete.getTickerName()))
.findFirst()
.orElseThrow(() -> new RuntimeException("Передан некорректный тикер"));
// Проверяем индекс
List<Alert> alerts = targetTicker.getAlerts();
int index = delete.getAlertIndex();
if (index < 0 || index >= alerts.size()) {
throw new RuntimeException("Передан некорректный индекс");
}
// Удаляем оповещение
alerts.remove(index);
return info;
}
}