Добавить src/main/java/org/lanit/service/JsonProcessingService.java
This commit is contained in:
parent
56dca69f93
commit
5c88b9f534
63
src/main/java/org/lanit/service/JsonProcessingService.java
Normal file
63
src/main/java/org/lanit/service/JsonProcessingService.java
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user