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

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

Edited registration and login services

  • Property mode set to 100644
File size: 1.8 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 List<String> getShops() {
33 return phoneOfferRepository.findAll().stream()
34 .map(PhoneOffer::getOffer_shop)
35 .distinct()
36 .collect(Collectors.toList());
37 }
38
39
40 public int getLowestPrice() {
41 return phoneOfferRepository.findAll()
42 .stream().sorted(Comparator.comparing(PhoneOffer::getPrice))
43 .collect(Collectors.toList()).get(0).getPrice();
44 }
45
46 public int getHighestPrice() {
47 return phoneOfferRepository.findAll()
48 .stream().sorted(Comparator.comparing(PhoneOffer::getPrice).reversed())
49 .collect(Collectors.toList()).get(0).getPrice();
50 }
51
52}
Note: See TracBrowser for help on using the repository browser.