| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package com.danielbohry.stocks.service.stock;
- import com.danielbohry.stocks.domain.Stock;
- import com.danielbohry.stocks.repository.stock.StockRepository;
- import lombok.AllArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.cache.annotation.Cacheable;
- import org.springframework.stereotype.Service;
- import java.util.Comparator;
- import java.util.List;
- import java.util.Objects;
- import static java.util.Collections.emptyList;
- @Slf4j
- @Service
- @AllArgsConstructor
- public class StockService {
- private StockRepository repository;
- @Cacheable("allStockQuotes")
- public List<Stock> getAll() {
- return repository.findAll()
- .stream()
- .sorted(Comparator.comparing(Stock::getName))
- .toList();
- }
- @Cacheable(value = "stockQuotesQuery", key = "#query")
- public List<Stock> get(String query) {
- if (Objects.equals(query, "")) {
- return emptyList();
- }
- log.debug("Querying stock with query [{}]", query);
- return repository.findLike(query);
- }
- @Cacheable(value = "stockQuotes", key = "#code")
- public Stock getByCode(String code) {
- log.debug("Getting stock by code [{}]", code);
- return repository.findByCode(code);
- }
- public List<Stock> update(List<Stock> quotes) {
- return repository.update(quotes);
- }
- public boolean isValid(String code) {
- return repository.isValid(code);
- }
- public Stock getStockQuote(String code) {
- return repository.getStockQuote(code);
- }
- }
|