source: phonelux-backend/src/main/java/finki/it/phoneluxbackend/controllers/PhoneController.java@ 34950c6

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

Specification filters logic implemented

  • Property mode set to 100644
File size: 2.5 KB
Line 
1package finki.it.phoneluxbackend.controllers;
2
3import finki.it.phoneluxbackend.entities.Phone;
4import finki.it.phoneluxbackend.entities.PhoneOffer;
5import finki.it.phoneluxbackend.services.PhoneOfferService;
6import finki.it.phoneluxbackend.services.PhoneService;
7import lombok.AllArgsConstructor;
8import org.springframework.beans.factory.annotation.Autowired;
9import org.springframework.web.bind.annotation.*;
10
11import java.util.Comparator;
12import java.util.List;
13import java.util.stream.Collectors;
14
15@RestController
16@AllArgsConstructor
17@RequestMapping(path = "/")
18public class PhoneController {
19 private final PhoneService phoneService;
20
21 @GetMapping(path = "/phones")
22 public List<Phone> getPhones(@RequestParam(name = "shops", required = false) String shops,
23 @RequestParam(name = "brands", required = false) String brands,
24 @RequestParam(name = "sortBy", required = false) String sortBy,
25 @RequestParam(name = "priceRange", required = false) String priceRange,
26 @RequestParam(name = "searchValue", required = false) String searchValue,
27 @RequestParam(name = "ram", required = false) String ram,
28 @RequestParam(name = "rom", required = false) String rom,
29 @RequestParam(name = "frontcamera", required = false) String frontcamera,
30 @RequestParam(name = "backcamera", required = false) String backcamera,
31 @RequestParam(name = "chipset", required = false) String chipset,
32 @RequestParam(name = "cpu", required = false) String cpu,
33 @RequestParam(name = "operatingsystem", required = false) String operatingsystem,
34 @RequestParam(name = "color", required = false) String color,
35 @RequestParam(name = "battery", required = false) String battery){
36
37 return phoneService.getPhones(shops,brands,sortBy,priceRange,searchValue,
38 ram, rom, frontcamera, backcamera, chipset, cpu, operatingsystem, color, battery);
39 }
40
41 @GetMapping(path = "/phones/{phoneId}")
42 public Phone getPhoneById(@PathVariable("phoneId") Long phoneId)
43 {
44 return phoneService.getPhoneById(phoneId);
45 }
46
47 @GetMapping(path = "/brands")
48 public List<String> getBrands(){
49 return phoneService.getBrands();
50 }
51
52}
Note: See TracBrowser for help on using the repository browser.