Ignore:
Timestamp:
05/07/25 18:34:01 (10 days ago)
Author:
Aleksandar Panovski <apano77@…>
Branches:
main
Parents:
b67dfd3
Message:

Final version for DB

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/example/rezevirajmasa/demo/service/impl/MenuServiceImpl.java

    rb67dfd3 re48199a  
    22
    33import com.example.rezevirajmasa.demo.model.Menu;
     4import com.example.rezevirajmasa.demo.model.PriceHistory;
    45import com.example.rezevirajmasa.demo.model.Restaurant;
    56import com.example.rezevirajmasa.demo.repository.MenuRepository;
     7import com.example.rezevirajmasa.demo.repository.PriceHistoryRepository;
    68import com.example.rezevirajmasa.demo.service.MenuService;
    79import com.example.rezevirajmasa.demo.service.RestaurantService;
     10import org.openqa.selenium.InvalidArgumentException;
    811import org.springframework.stereotype.Service;
    912
     13import java.math.BigDecimal;
     14import java.time.LocalDateTime;
    1015import java.util.List;
    1116
     
    1520    private final RestaurantService restaurantService;
    1621
    17     public MenuServiceImpl(MenuRepository menuRepository, RestaurantService restaurantService) {
     22    private final PriceHistoryRepository priceHistoryRepository;
     23
     24    public MenuServiceImpl(MenuRepository menuRepository, RestaurantService restaurantService, PriceHistoryRepository priceHistoryRepository) {
    1825        this.menuRepository = menuRepository;
    1926        this.restaurantService = restaurantService;
     27        this.priceHistoryRepository = priceHistoryRepository;
    2028    }
    2129
     
    2533        return menuRepository.findAllByRestaurant(restaurant);
    2634    }
     35
     36    @Override
     37    public void updateMenuPrice(Long menuId, BigDecimal newPrice) {
     38        Menu menu = menuRepository.findById(menuId)
     39                .orElseThrow(() -> new IllegalArgumentException("Menu not found"));
     40
     41        if (menu.getPrice() != null && !menu.getPrice().equals(newPrice)) {
     42            PriceHistory priceHistory = new PriceHistory(menu, menu.getPrice(), LocalDateTime.now());
     43            priceHistoryRepository.save(priceHistory);
     44        }
     45
     46        menu.setPrice(newPrice);
     47        menuRepository.save(menu);
     48    }
     49
     50    @Override
     51    public Menu getMenuById(Long id) {
     52        return menuRepository.findById(id)
     53                .orElseThrow(()->new InvalidArgumentException("Invalid id sent: " + id));
     54    }
    2755}
Note: See TracChangeset for help on using the changeset viewer.