CWinarski hace 8 años
padre
commit
18ab6b1444

+ 5
- 3
src/main/java/io/zipcoder/tc_spring_poll_application/controller/PollController.java Ver fichero

4
 import io.zipcoder.tc_spring_poll_application.exception.ResourceNotFoundException;
4
 import io.zipcoder.tc_spring_poll_application.exception.ResourceNotFoundException;
5
 import io.zipcoder.tc_spring_poll_application.repositories.PollRepository;
5
 import io.zipcoder.tc_spring_poll_application.repositories.PollRepository;
6
 import org.springframework.beans.factory.annotation.Autowired;
6
 import org.springframework.beans.factory.annotation.Autowired;
7
+import org.springframework.data.domain.Page;
8
+import org.springframework.data.domain.Pageable;
7
 import org.springframework.http.HttpHeaders;
9
 import org.springframework.http.HttpHeaders;
8
 import org.springframework.http.HttpStatus;
10
 import org.springframework.http.HttpStatus;
9
 import org.springframework.http.ResponseEntity;
11
 import org.springframework.http.ResponseEntity;
24
     }
26
     }
25
 
27
 
26
     @RequestMapping(value="/polls", method= RequestMethod.GET)//maps web requests to entities with the @RequestMapping
28
     @RequestMapping(value="/polls", method= RequestMethod.GET)//maps web requests to entities with the @RequestMapping
27
-    public ResponseEntity<Iterable<Poll>> getAllPolls() {
28
-        Iterable<Poll> allPolls = pollRepository.findAll(); // reads all the polls using poll repository
29
-        return new ResponseEntity<>(allPolls, HttpStatus.OK);
29
+    public ResponseEntity<Page<Poll>> getAllPolls(Pageable pageable) {
30
+        Page<Poll> allPolls = pollRepository.findAll(pageable); //essentially pages the data
31
+        return new ResponseEntity<>(allPolls, HttpStatus.OK);// returns paged data
30
     }
32
     }
31
 
33
 
32
     @RequestMapping(value="/polls", method=RequestMethod.POST)
34
     @RequestMapping(value="/polls", method=RequestMethod.POST)

+ 2
- 1
src/main/java/io/zipcoder/tc_spring_poll_application/repositories/PollRepository.java Ver fichero

2
 
2
 
3
 import io.zipcoder.tc_spring_poll_application.domain.Poll;
3
 import io.zipcoder.tc_spring_poll_application.domain.Poll;
4
 import org.springframework.data.repository.CrudRepository;
4
 import org.springframework.data.repository.CrudRepository;
5
+import org.springframework.data.repository.PagingAndSortingRepository;
5
 
6
 
6
-public interface PollRepository extends CrudRepository<Poll, Long>{
7
+public interface PollRepository extends PagingAndSortingRepository<Poll, Long> {
7
     //these are DAOs pr Data Access Objects they provide abstraction for interacting with data stores
8
     //these are DAOs pr Data Access Objects they provide abstraction for interacting with data stores
8
     // ypu have usually one repository per domain object
9
     // ypu have usually one repository per domain object
9
 }
10
 }

+ 74
- 0
src/main/resources/import.sql Ver fichero

1
+ insert into poll (poll_id, question) values (1, 'What is your favorite color?');
2
+ insert into option (option_id, option_value, poll_id) values (1, 'Red', 1);
3
+ insert into option (option_id, option_value, poll_id) values (2, 'Blue', 1);
4
+ insert into option (option_id, option_value, poll_id) values (3, 'Purple', 1);
5
+
6
+ insert into poll (poll_id, question) values (2, 'What is your favorite car brand?');
7
+ insert into option (option_id, option_value, poll_id) values (4, 'Chevy', 2);
8
+ insert into option (option_id, option_value, poll_id) values (5, 'Subaru', 2);
9
+ insert into option (option_id, option_value, poll_id) values (6, 'Honda', 2);
10
+
11
+ insert into poll (poll_id, question) values (3, 'What is your favorite warframe?');
12
+ insert into option (option_id, option_value, poll_id) values (7, 'Saryn', 3);
13
+ insert into option (option_id, option_value, poll_id) values (8, 'Frost', 3);
14
+ insert into option (option_id, option_value, poll_id) values (9, 'Titania', 3);
15
+
16
+ insert into poll (poll_id, question) values (4, 'What is your favorite book genre?');
17
+ insert into option (option_id, option_value, poll_id) values (10, 'Sci-Fi', 4);
18
+ insert into option (option_id, option_value, poll_id) values (11, 'Fantasy', 4);
19
+ insert into option (option_id, option_value, poll_id) values (12, 'Drama', 4);
20
+
21
+ insert into poll (poll_id, question) values (5, 'What is your favorite movie?');
22
+ insert into option (option_id, option_value, poll_id) values (13, 'Ready Player One', 5);
23
+ insert into option (option_id, option_value, poll_id) values (14, 'Black Panther', 5);
24
+ insert into option (option_id, option_value, poll_id) values (15, 'Pacific Rim 2', 5);
25
+
26
+ insert into poll (poll_id, question) values (6, 'What is your favorite phone?');
27
+ insert into option (option_id, option_value, poll_id) values (16, 'Samsung s9', 6);
28
+ insert into option (option_id, option_value, poll_id) values (17, 'Lg v30', 6);
29
+ insert into option (option_id, option_value, poll_id) values (18, 'OnePlus 5T', 6);
30
+
31
+ insert into poll (poll_id, question) values (7, 'What is your favorite soda?');
32
+ insert into option (option_id, option_value, poll_id) values (19, 'Dr. Pepper', 7);
33
+ insert into option (option_id, option_value, poll_id) values (20, 'Coke', 7);
34
+ insert into option (option_id, option_value, poll_id) values (21, 'Pepsi', 7);
35
+
36
+ insert into poll (poll_id, question) values (8, 'What is your favorite console?');
37
+ insert into option (option_id, option_value, poll_id) values (22, 'PS4', 8);
38
+ insert into option (option_id, option_value, poll_id) values (23, 'Xbox One', 8);
39
+ insert into option (option_id, option_value, poll_id) values (24, 'Nintendo Switch', 8);
40
+
41
+ insert into poll (poll_id, question) values (9, 'What is your favorite music genre?');
42
+ insert into option (option_id, option_value, poll_id) values (25, 'Rock', 9);
43
+ insert into option (option_id, option_value, poll_id) values (26, 'Edm', 9);
44
+ insert into option (option_id, option_value, poll_id) values (27, 'Pop', 9);
45
+
46
+ insert into poll (poll_id, question) values (10, 'What is your favorite pet?');
47
+ insert into option (option_id, option_value, poll_id) values (28, 'Dog', 10);
48
+ insert into option (option_id, option_value, poll_id) values (29, 'Cat', 10);
49
+ insert into option (option_id, option_value, poll_id) values (30, 'Bird', 10);
50
+
51
+ insert into poll (poll_id, question) values (11, 'What is your favorite monstercat artist?');
52
+ insert into option (option_id, option_value, poll_id) values (31, 'Conro', 11);
53
+ insert into option (option_id, option_value, poll_id) values (32, 'Muzzy', 11);
54
+ insert into option (option_id, option_value, poll_id) values (33, 'Kuuro', 11);
55
+
56
+ insert into poll (poll_id, question) values (12, 'What is your favorite computer brand?');
57
+ insert into option (option_id, option_value, poll_id) values (34, 'HP', 12);
58
+ insert into option (option_id, option_value, poll_id) values (35, 'Apple', 12);
59
+ insert into option (option_id, option_value, poll_id) values (36, 'Purple', 12);
60
+
61
+ insert into poll (poll_id, question) values (13, 'What is your favorite gaming brand?');
62
+ insert into option (option_id, option_value, poll_id) values (37, 'Logitech', 13);
63
+ insert into option (option_id, option_value, poll_id) values (38, 'Corsair', 13);
64
+ insert into option (option_id, option_value, poll_id) values (39, 'HyperX', 13);
65
+
66
+ insert into poll (poll_id, question) values (14, 'What is your favorite food?');
67
+ insert into option (option_id, option_value, poll_id) values (40, 'Sushi', 14);
68
+ insert into option (option_id, option_value, poll_id) values (41, 'Pizza', 14);
69
+ insert into option (option_id, option_value, poll_id) values (42, 'Fries', 14);
70
+
71
+ insert into poll (poll_id, question) values (15, 'What is your favorite chip brand?');
72
+ insert into option (option_id, option_value, poll_id) values (43, 'Doritos', 15);
73
+ insert into option (option_id, option_value, poll_id) values (44, 'Lays', 15);
74
+ insert into option (option_id, option_value, poll_id) values (45, 'Herrs', 15);