CWinarski 8 vuotta sitten
vanhempi
commit
18ab6b1444

+ 5
- 3
src/main/java/io/zipcoder/tc_spring_poll_application/controller/PollController.java Näytä tiedosto

@@ -4,6 +4,8 @@ import io.zipcoder.tc_spring_poll_application.domain.Poll;
4 4
 import io.zipcoder.tc_spring_poll_application.exception.ResourceNotFoundException;
5 5
 import io.zipcoder.tc_spring_poll_application.repositories.PollRepository;
6 6
 import org.springframework.beans.factory.annotation.Autowired;
7
+import org.springframework.data.domain.Page;
8
+import org.springframework.data.domain.Pageable;
7 9
 import org.springframework.http.HttpHeaders;
8 10
 import org.springframework.http.HttpStatus;
9 11
 import org.springframework.http.ResponseEntity;
@@ -24,9 +26,9 @@ public class PollController {
24 26
     }
25 27
 
26 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 34
     @RequestMapping(value="/polls", method=RequestMethod.POST)

+ 2
- 1
src/main/java/io/zipcoder/tc_spring_poll_application/repositories/PollRepository.java Näytä tiedosto

@@ -2,8 +2,9 @@ package io.zipcoder.tc_spring_poll_application.repositories;
2 2
 
3 3
 import io.zipcoder.tc_spring_poll_application.domain.Poll;
4 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 8
     //these are DAOs pr Data Access Objects they provide abstraction for interacting with data stores
8 9
     // ypu have usually one repository per domain object
9 10
 }

+ 74
- 0
src/main/resources/import.sql Näytä tiedosto

@@ -0,0 +1,74 @@
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);