source: phonelux-backend/src/main/java/finki/it/phoneluxbackend/services/PhoneOfferService.java@ e5b84dc

Last change on this file since e5b84dc was e5b84dc, checked in by Marko <Marko@…>, 22 months ago

Prototype version

  • Property mode set to 100644
File size: 2.1 KB
Line 
1package finki.it.phoneluxbackend.services;
2
3import finki.it.phoneluxbackend.entities.PhoneOffer;
4import finki.it.phoneluxbackend.repositories.PhoneOfferRepository;
5import finki.it.phoneluxbackend.repositories.PhoneRepository;
6import org.springframework.stereotype.Service;
7
8import java.util.ArrayList;
9import java.util.Comparator;
10import java.util.List;
11import java.util.stream.Collectors;
12
13@Service
14public class PhoneOfferService {
15 private final PhoneOfferRepository phoneOfferRepository;
16 private final PhoneRepository phoneRepository;
17
18 public PhoneOfferService(PhoneOfferRepository phoneOfferRepository, PhoneRepository phoneRepository) {
19 this.phoneOfferRepository = phoneOfferRepository;
20 this.phoneRepository = phoneRepository;
21 }
22
23 public List<PhoneOffer> getPhoneOffersForPhone(Long phoneId) {
24 boolean exists = phoneRepository.existsById(phoneId);
25 if(!exists)
26 throw new IllegalStateException("Phone with id "+phoneId+" does not exist");
27
28 return phoneRepository.findById(phoneId).get().getPhoneOffers()
29 .stream().sorted(Comparator.comparing(PhoneOffer::getPrice)).collect(Collectors.toList());
30 }
31
32 public PhoneOffer getPhoneOffer(Long offerId){
33 boolean exists = phoneOfferRepository.existsById(offerId);
34
35 if(!exists)
36 throw new IllegalStateException("Phone offer with id "+offerId+" does not exist");
37
38 return phoneOfferRepository.findById(offerId).get();
39 }
40
41
42 public List<String> getShops() {
43 return phoneOfferRepository.findAll().stream()
44 .map(PhoneOffer::getOffer_shop)
45 .distinct()
46 .collect(Collectors.toList());
47 }
48
49
50 public int getLowestPrice() {
51 return phoneOfferRepository.findAll()
52 .stream().sorted(Comparator.comparing(PhoneOffer::getPrice))
53 .collect(Collectors.toList()).get(0).getPrice();
54 }
55
56 public int getHighestPrice() {
57 return phoneOfferRepository.findAll()
58 .stream().sorted(Comparator.comparing(PhoneOffer::getPrice).reversed())
59 .collect(Collectors.toList()).get(0).getPrice();
60 }
61
62}
Note: See TracBrowser for help on using the repository browser.