Добавить 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