Carolynn Vansant 8 anni fa
parent
commit
4032df83dc

+ 6
- 2
src/main/java/io/zipcoder/tc_spring_poll_application/controller/PollController.java Vedi File

4
 import io.zipcoder.tc_spring_poll_application.domain.Poll;
4
 import io.zipcoder.tc_spring_poll_application.domain.Poll;
5
 
5
 
6
 
6
 
7
-
7
+import io.zipcoder.tc_spring_poll_application.repositories.VoteRepository;
8
 import org.springframework.beans.factory.annotation.Autowired;
8
 import org.springframework.beans.factory.annotation.Autowired;
9
 import org.springframework.http.HttpHeaders;
9
 import org.springframework.http.HttpHeaders;
10
 import org.springframework.http.HttpStatus;
10
 import org.springframework.http.HttpStatus;
18
 @RestController
18
 @RestController
19
 public class PollController {
19
 public class PollController {
20
 
20
 
21
-    @Autowired
22
     private PollRepository pollRepository;
21
     private PollRepository pollRepository;
23
 
22
 
23
+    @Autowired
24
+    public PollController(PollRepository pollRepository) {
25
+        this.pollRepository = pollRepository;
26
+    }
27
+
24
     @RequestMapping(value="/polls", method= RequestMethod.GET)
28
     @RequestMapping(value="/polls", method= RequestMethod.GET)
25
     public ResponseEntity<Iterable<Poll>> getAllPolls() {
29
     public ResponseEntity<Iterable<Poll>> getAllPolls() {
26
         Iterable<Poll> allPolls = pollRepository.findAll();
30
         Iterable<Poll> allPolls = pollRepository.findAll();

+ 18
- 2
src/main/java/io/zipcoder/tc_spring_poll_application/controller/VoteController.java Vedi File

2
 
2
 
3
 import io.zipcoder.tc_spring_poll_application.domain.Vote;
3
 import io.zipcoder.tc_spring_poll_application.domain.Vote;
4
 import io.zipcoder.tc_spring_poll_application.repositories.VoteRepository;
4
 import io.zipcoder.tc_spring_poll_application.repositories.VoteRepository;
5
+
5
 import org.springframework.beans.factory.annotation.Autowired;
6
 import org.springframework.beans.factory.annotation.Autowired;
6
 import org.springframework.http.HttpHeaders;
7
 import org.springframework.http.HttpHeaders;
7
 import org.springframework.http.HttpStatus;
8
 import org.springframework.http.HttpStatus;
13
 
14
 
14
 @RestController
15
 @RestController
15
 public class VoteController {
16
 public class VoteController {
16
-    @Autowired
17
+
17
     private VoteRepository voteRepository;
18
     private VoteRepository voteRepository;
18
 
19
 
20
+    @Autowired
21
+    public VoteController(VoteRepository voteRepository) {
22
+        this.voteRepository = voteRepository;
23
+    }
24
+
19
     @RequestMapping(value = "/polls/{pollId}/votes", method = RequestMethod.POST)
25
     @RequestMapping(value = "/polls/{pollId}/votes", method = RequestMethod.POST)
20
     public ResponseEntity<?> createVote(@PathVariable Long pollId, @RequestBody Vote
26
     public ResponseEntity<?> createVote(@PathVariable Long pollId, @RequestBody Vote
21
             vote) {
27
             vote) {
22
         vote = voteRepository.save(vote);
28
         vote = voteRepository.save(vote);
23
-        // Set the headers for the newly created resource
24
         HttpHeaders responseHeaders = new HttpHeaders();
29
         HttpHeaders responseHeaders = new HttpHeaders();
25
         responseHeaders.setLocation(ServletUriComponentsBuilder.
30
         responseHeaders.setLocation(ServletUriComponentsBuilder.
26
                 fromCurrentRequest().path("/{id}").buildAndExpand(vote.getId()).toUri());
31
                 fromCurrentRequest().path("/{id}").buildAndExpand(vote.getId()).toUri());
27
         return new ResponseEntity<>(null, responseHeaders, HttpStatus.CREATED);
32
         return new ResponseEntity<>(null, responseHeaders, HttpStatus.CREATED);
28
     }
33
     }
34
+
35
+    @RequestMapping(value="/polls/votes", method=RequestMethod.GET)
36
+    public Iterable<Vote> getAllVotes() {
37
+        return voteRepository.findAll();
38
+    }
39
+
40
+    @RequestMapping(value="/polls/{pollId}/votes", method=RequestMethod.GET)
41
+    public Iterable<Vote> getVote(@PathVariable Long pollId) {
42
+        return voteRepository.findByPoll(pollId);
43
+    }
44
+
29
 }
45
 }

+ 7
- 0
src/main/java/io/zipcoder/tc_spring_poll_application/repositories/VoteRepository.java Vedi File

1
 package io.zipcoder.tc_spring_poll_application.repositories;
1
 package io.zipcoder.tc_spring_poll_application.repositories;
2
 
2
 
3
+import org.springframework.data.jpa.repository.Query;
3
 import org.springframework.data.repository.CrudRepository;
4
 import org.springframework.data.repository.CrudRepository;
4
 import io.zipcoder.tc_spring_poll_application.domain.Vote;
5
 import io.zipcoder.tc_spring_poll_application.domain.Vote;
5
 
6
 
6
 public interface VoteRepository extends CrudRepository<Vote, Long> {
7
 public interface VoteRepository extends CrudRepository<Vote, Long> {
8
+
9
+    @Query(value = "SELECT v.* " +
10
+            "FROM Option o, Vote v " +
11
+            "WHERE o.POLL_ID = ?1 " +
12
+            "AND v.OPTION_ID = o.OPTION_ID", nativeQuery = true)
13
+        public Iterable<Vote> findByPoll(Long pollId);
7
 }
14
 }