Changeset ffd50db for phonelux-backend/src/main/java/finki
- Timestamp:
- 10/01/22 22:57:41 (2 years ago)
- Branches:
- master
- Children:
- 47f4eaf
- Parents:
- fd5b100
- Location:
- phonelux-backend/src/main/java/finki/it/phoneluxbackend
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
phonelux-backend/src/main/java/finki/it/phoneluxbackend/controllers/AdminController.java
rfd5b100 rffd50db 23 23 MediaType.APPLICATION_XML_VALUE 24 24 }) 25 public ResponseEntity<Object> editOffer(@PathVariable("offerId") Long offerId, @RequestBody PhoneOffer editedOffer){ 25 public ResponseEntity<Object> editOffer(@PathVariable("offerId") Long offerId, @RequestBody PhoneOffer editedOffer) 26 { 26 27 27 28 return phoneOfferService.editOffer(offerId,editedOffer); -
phonelux-backend/src/main/java/finki/it/phoneluxbackend/controllers/PhoneController.java
rfd5b100 rffd50db 6 6 import finki.it.phoneluxbackend.services.PhoneService; 7 7 import lombok.AllArgsConstructor; 8 import org.apache.coyote.Response; 8 9 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.http.MediaType; 11 import org.springframework.http.ResponseEntity; 9 12 import org.springframework.web.bind.annotation.*; 10 13 … … 50 53 } 51 54 55 @GetMapping(path = "/totaloffers/{phoneModel}") 56 public Long getTotalOffersForPhone(@PathVariable("phoneModel") String phoneModel){ 57 return phoneService.getTotalOffersForPhone(phoneModel); 58 } 59 60 @PutMapping(path = "/settotaloffers/{phoneId}/{totaloffers}") 61 public ResponseEntity<Object> setTotalOffersForPhone(@PathVariable("phoneId") Long phoneId, 62 @PathVariable("totaloffers") int totaloffers){ 63 return phoneService.setTotalOffersForPhone(phoneId,totaloffers); 64 } 65 66 @PutMapping(path = "/setlowestprice/{phoneId}/{lowestPrice}") 67 public ResponseEntity<Object> setLowestPriceForPhone(@PathVariable("phoneId") Long phoneId, 68 @PathVariable("lowestPrice") int lowestPrice){ 69 return phoneService.setLowestPriceForPhone(phoneId,lowestPrice); 70 } 71 72 @PutMapping(path = "/setimageurl/{phoneId}", consumes = { 73 MediaType.APPLICATION_JSON_VALUE, 74 MediaType.APPLICATION_XML_VALUE 75 }, produces = { 76 MediaType.APPLICATION_JSON_VALUE, 77 MediaType.APPLICATION_XML_VALUE 78 }) 79 public ResponseEntity<Object> setImageUrlForPhone(@PathVariable("phoneId") Long phoneId, 80 @RequestBody String newImageUrl){ 81 return phoneService.setImageUrlForPhone(phoneId,newImageUrl); 82 } 83 84 52 85 } -
phonelux-backend/src/main/java/finki/it/phoneluxbackend/controllers/PhoneOfferController.java
rfd5b100 rffd50db 7 7 import lombok.AllArgsConstructor; 8 8 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.http.ResponseEntity; 9 10 import org.springframework.web.bind.annotation.*; 10 11 … … 16 17 private final PhoneOfferService phoneOfferService; 17 18 19 20 @GetMapping(path = "/alloffers") 21 public List<PhoneOffer> getAllOffers(){ 22 return phoneOfferService.getAllOffers(); 23 } 18 24 @GetMapping(path = "/phones/offers/{phoneId}") 19 25 public List<PhoneOffer> getOffersForPhone(@PathVariable("phoneId") Long phoneId){ … … 22 28 23 29 @GetMapping(path = "/multipleoffers") 24 public List<PhoneOffer> get PhoneOffer(@RequestParam("offerIds") String offerIds){30 public List<PhoneOffer> getMultiplePhoneOffers(@RequestParam("offerIds") String offerIds){ 25 31 return phoneOfferService.getMultiplePhoneOffers(offerIds); 26 32 } … … 58 64 } 59 65 66 67 @PutMapping(path = "/phoneoffer/{offerId}/addphonemodel/{phoneId}") 68 public ResponseEntity<Object> addPhoneModelToOffer(@PathVariable("offerId") Long offerId, 69 @PathVariable("phoneId") Long phoneId) 70 { 71 return phoneOfferService.addPhoneModelToOffer(offerId,phoneId); 72 } 73 @PutMapping(path = "/phoneoffer/{offerId}/changeprice/{price}") 74 public ResponseEntity<Object> changePriceForOffer(@PathVariable("offerId") Long offerId, 75 @PathVariable("price") int price) 76 { 77 return phoneOfferService.changePriceForOffer(offerId,price); 78 } 79 80 @PostMapping(path = "/phoneoffer/addoffer") 81 public ResponseEntity<Object> addOffer(@RequestBody PhoneOffer offer) 82 { 83 return phoneOfferService.addOffer(offer); 84 } 85 86 @DeleteMapping(path = "/phoneoffer/deleteoffer/{offerId}") 87 public ResponseEntity<Object> deleteOffer(@PathVariable("offerId") Long offerId) 88 { 89 return phoneOfferService.deleteOffer(offerId); 90 } 60 91 } -
phonelux-backend/src/main/java/finki/it/phoneluxbackend/entities/Phone.java
rfd5b100 rffd50db 43 43 } 44 44 45 45 public Phone(Long id, String brand, String model, String image_url, Integer total_offers, Integer lowestPrice) { 46 this.id = id; 47 this.brand = brand; 48 this.model = model; 49 this.image_url = image_url; 50 this.total_offers = total_offers; 51 this.lowestPrice = lowestPrice; 52 } 46 53 } -
phonelux-backend/src/main/java/finki/it/phoneluxbackend/entities/PhoneOffer.java
rfd5b100 rffd50db 20 20 @Id 21 21 @Column(name = "offer_id") 22 @GeneratedValue(strategy=GenerationType.IDENTITY) 22 23 private Long id; 23 24 … … 115 116 } 116 117 118 public PhoneOffer(String offer_shop, 119 String offer_name, 120 Integer price, 121 String ram_memory, 122 String rom_memory, 123 String color, 124 String front_camera, 125 String back_camera, 126 String chipset, 127 String battery, 128 String operating_system, 129 String cpu, 130 String image_url, 131 String offer_url, 132 Date last_updated, 133 Boolean is_validated, 134 String offer_description, 135 String offer_shop_code) { 136 this.offer_shop = offer_shop; 137 this.offer_name = offer_name; 138 this.price = price; 139 this.ram_memory = ram_memory; 140 this.rom_memory = rom_memory; 141 this.color = color; 142 this.front_camera = front_camera; 143 this.back_camera = back_camera; 144 this.chipset = chipset; 145 this.battery = battery; 146 this.operating_system = operating_system; 147 this.cpu = cpu; 148 this.image_url = image_url; 149 this.offer_url = offer_url; 150 this.last_updated = last_updated; 151 this.is_validated = is_validated; 152 this.offer_description = offer_description; 153 this.offer_shop_code = offer_shop_code; 154 } 155 117 156 public PhoneOffer(Long id, 118 157 String offer_shop, -
phonelux-backend/src/main/java/finki/it/phoneluxbackend/repositories/PhoneRepository.java
rfd5b100 rffd50db 5 5 import org.springframework.stereotype.Repository; 6 6 7 import java.util.Optional; 8 7 9 @Repository 8 10 public interface PhoneRepository extends JpaRepository<Phone,Long> { 9 11 Optional<Phone> findPhoneByModel(String model); 10 12 } -
phonelux-backend/src/main/java/finki/it/phoneluxbackend/services/PhoneOfferService.java
rfd5b100 rffd50db 5 5 import finki.it.phoneluxbackend.repositories.PhoneOfferRepository; 6 6 import finki.it.phoneluxbackend.repositories.PhoneRepository; 7 import org.apache.coyote.Response; 7 8 import org.springframework.http.ResponseEntity; 8 9 import org.springframework.stereotype.Service; … … 126 127 List<PhoneOffer> offers = phoneOfferRepository.findAll(); 127 128 128 return offers.stream() 129 .filter(offer -> offer.getOffer_shop().equalsIgnoreCase(shop)) 129 if(shop.equalsIgnoreCase("mobigo")) 130 shop = "Mobi Go"; 131 132 if(shop.equalsIgnoreCase("mobilezone")) 133 shop = "Mobile Zone"; 134 String finalShop = shop; 135 136 return offers.stream() 137 .filter(offer -> offer.getOffer_shop().stripIndent().equalsIgnoreCase(finalShop.stripIndent())) 130 138 .collect(Collectors.toList()); 131 139 } … … 301 309 .collect(Collectors.toList()); 302 310 } 311 312 public ResponseEntity<Object> addOffer(PhoneOffer offer) { 313 phoneOfferRepository.save(offer); 314 return ResponseEntity.ok().build(); 315 } 316 317 public ResponseEntity<Object> deleteOffer(Long offerId) { 318 boolean exists = phoneOfferRepository.existsById(offerId); 319 320 if(!exists) 321 throw new IllegalStateException("Phone offer with id "+offerId+" does not exist"); 322 323 phoneOfferRepository.deleteById(offerId); 324 325 return ResponseEntity.ok().build(); 326 } 327 328 public List<PhoneOffer> getAllOffers() { 329 return phoneOfferRepository.findAll(); 330 } 331 332 public ResponseEntity<Object> addPhoneModelToOffer(Long offerId, Long phoneId) { 333 boolean exists = phoneOfferRepository.existsById(offerId); 334 335 if(!exists) 336 throw new IllegalStateException("Phone offer with id "+offerId+" does not exist"); 337 338 PhoneOffer offer = phoneOfferRepository.findById(offerId).get(); 339 340 exists = phoneRepository.existsById(phoneId); 341 342 if(!exists) 343 throw new IllegalStateException("Phone with id "+phoneId+" does not exist"); 344 345 Phone phone = phoneRepository.findById(phoneId).get(); 346 347 offer.setPhone(phone); 348 phoneOfferRepository.save(offer); 349 350 return ResponseEntity.ok().build(); 351 } 352 353 public ResponseEntity<Object> changePriceForOffer(Long offerId, int price) { 354 boolean exists = phoneOfferRepository.existsById(offerId); 355 356 if(!exists) 357 throw new IllegalStateException("Phone offer with id "+offerId+" does not exist"); 358 359 PhoneOffer offer = phoneOfferRepository.findById(offerId).get(); 360 offer.setPrice(price); 361 phoneOfferRepository.save(offer); 362 363 return ResponseEntity.ok().build(); 364 } 303 365 } -
phonelux-backend/src/main/java/finki/it/phoneluxbackend/services/PhoneService.java
rfd5b100 rffd50db 2 2 3 3 import finki.it.phoneluxbackend.entities.Phone; 4 import finki.it.phoneluxbackend.entities.PhoneOffer;5 4 import finki.it.phoneluxbackend.repositories.PhoneRepository; 6 import org.springframework.data.domain.PageRequest; 7 import org.springframework.data.domain.Sort; 5 import org.springframework.http.ResponseEntity; 8 6 import org.springframework.stereotype.Service; 9 7 … … 27 25 String ram, String rom, String frontcamera, String backcamera, String chipset, 28 26 String cpu, String operatingsystem, String color, String battery){ 29 List<Phone> phones = phoneRepository.findAll(); 27 List<Phone> phones = phoneRepository.findAll().stream() 28 .filter(phone -> phone.getTotal_offers() > 0) 29 .collect(Collectors.toList()); 30 30 31 31 … … 153 153 } 154 154 155 156 155 phones = phones.stream().sorted(Comparator.comparing(Phone::getTotal_offers).reversed()) 157 156 .collect(Collectors.toList()); … … 228 227 public List<String> getBrands(){ 229 228 return phoneRepository.findAll().stream() 230 .map(Phone::getBrand).distinct() 229 .map(phone -> phone.getBrand().stripIndent()) 230 .distinct() 231 231 .collect(Collectors.toList()); 232 232 } … … 238 238 return phoneRepository.findById(phoneId).get(); 239 239 } 240 241 public Long getTotalOffersForPhone(String phoneModel) { 242 String model = String.join(" ", phoneModel.split("\\*")); 243 boolean exists = phoneRepository.findPhoneByModel(model).isPresent(); 244 245 if(!exists) 246 throw new IllegalStateException("Phone with model "+model+" does not exist"); 247 248 return phoneRepository.findPhoneByModel(model).get().getPhoneOffers().stream().count(); 249 } 250 251 public ResponseEntity<Object> setTotalOffersForPhone(Long phoneId, int totaloffers) { 252 boolean exists = phoneRepository.findById(phoneId).isPresent(); 253 254 if(!exists) 255 throw new IllegalStateException("Phone with id "+phoneId+" does not exist"); 256 257 Phone phone = phoneRepository.findById(phoneId).get(); 258 phone.setTotal_offers(totaloffers); 259 phoneRepository.save(phone); 260 return ResponseEntity.ok().build(); 261 } 262 263 public ResponseEntity<Object> setLowestPriceForPhone(Long phoneId, int lowestPrice) { 264 boolean exists = phoneRepository.findById(phoneId).isPresent(); 265 266 if(!exists) 267 throw new IllegalStateException("Phone with id "+phoneId+" does not exist"); 268 269 Phone phone = phoneRepository.findById(phoneId).get(); 270 phone.setLowestPrice(lowestPrice); 271 phoneRepository.save(phone); 272 return ResponseEntity.ok().build(); 273 } 274 275 276 public ResponseEntity<Object> setImageUrlForPhone(Long phoneId, String newImageUrl) { 277 boolean exists = phoneRepository.findById(phoneId).isPresent(); 278 279 if(!exists) 280 throw new IllegalStateException("Phone with id "+phoneId+" does not exist"); 281 282 Phone phone = phoneRepository.findById(phoneId).get(); 283 phone.setImage_url(newImageUrl); 284 phoneRepository.save(phone); 285 286 return ResponseEntity.ok().build(); 287 } 240 288 }
Note:
See TracChangeset
for help on using the changeset viewer.