Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.apidemo.controller;
- import com.example.apidemo.exception.ResourceNotFoundException;
- import com.example.apidemo.model.Question;
- import com.example.apidemo.repository.QuestionRepository;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.domain.Page;
- import org.springframework.data.domain.Pageable;
- import org.springframework.http.ResponseEntity;
- import org.springframework.web.bind.annotation.*;
- import javax.validation.Valid;
- @RestController
- public class QuestionController {
- @Autowired
- private QuestionRepository questionRepository;
- @GetMapping("/questions")
- public Page<Question> getQuestions(Pageable pageable) {
- return questionRepository.findAll(pageable);
- }
- @PostMapping("/questions")
- public Question createQuestion(@Valid @RequestBody Question question) {
- return questionRepository.save(question);
- }
- @PutMapping("/questions/{questionId}")
- public Question updateQuestion(@PathVariable Long questionId, @Valid @RequestBody Question questionRequest) {
- return questionRepository.findById(questionId)
- .map(question -> {
- question.setTitle(questionRequest.getTitle());
- question.setDescription(questionRequest.getDescription());
- return questionRepository.save(question);
- }).orElseThrow(() -> new ResourceNotFoundException("Question not found with id " + questionId));
- }
- @DeleteMapping("/questions/{questionId}")
- public ResponseEntity<?> deleteQuestion(@PathVariable Long questionId) {
- return questionRepository.findById(questionId)
- .map(question -> {
- questionRepository.delete(question);
- return ResponseEntity.ok().build();
- }).orElseThrow(() -> new ResourceNotFoundException("Question not found with id " + questionId));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment