ohctechv3/.svn/pristine/1a/1a664564c2a93678cae9f7485f3bdf1fac634ce1.svn-base
2024-10-28 15:03:36 +05:30

66 lines
3.0 KiB
Plaintext

package com.healthcare.ohctech.controller;
import com.healthcare.ohctech.dto.QuestionaireMasterDto;
import com.healthcare.ohctech.entity.QuestionaireMaster;
import com.healthcare.ohctech.service.impl.QuestionaireMasterServiceImpl;
import com.healthcare.ohctech.util.PaginationUtil;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RestController
@RequestMapping("/questions")
public class QuestionaireMasterController {
private final QuestionaireMasterServiceImpl questionaireMasterServiceImpl;
@Autowired
public QuestionaireMasterController(QuestionaireMasterServiceImpl questionaireMasterServiceImpl) {
this.questionaireMasterServiceImpl = questionaireMasterServiceImpl;
}
@GetMapping("/{questionId}")
public ResponseEntity<?> getQuestionById(@PathVariable Long questionId) {
QuestionaireMaster question = questionaireMasterServiceImpl.getQuestionById(questionId);
if (question != null) {
return new ResponseEntity<>(question, HttpStatus.OK);
}
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@GetMapping
public ResponseEntity<?> getAllQuestions(@RequestParam(required = false) Integer page,
@RequestParam(required = false) Integer size,
@RequestParam(required = false) String sortBy,
@RequestParam(required = false) String sortOrder) {
Pageable pageable = PaginationUtil.getPageableWithDefaults(page, size, sortBy, sortOrder);
Page<QuestionaireMaster> questionPage = questionaireMasterServiceImpl.getAllQuestions(pageable);
Map<String, Object> response = PaginationUtil.getPageResponse(questionPage);
return new ResponseEntity<>(response, HttpStatus.OK);
}
@PostMapping
public ResponseEntity<?> addQuestion(@Valid @RequestBody QuestionaireMasterDto questionaireMasterDto) {
questionaireMasterServiceImpl.addQuestion(questionaireMasterDto);
return new ResponseEntity<>("Saved Successfully", HttpStatus.CREATED);
}
@PutMapping("/{questionId}")
public ResponseEntity<?> updateQuestion(@Valid @RequestBody QuestionaireMasterDto questionaireMasterDto) {
questionaireMasterServiceImpl.updateQuestion(questionaireMasterDto);
return new ResponseEntity<>("Updated Successfully", HttpStatus.OK);
}
@DeleteMapping("/{questionId}")
public ResponseEntity<?> deleteQuestion(@PathVariable Long questionId) {
questionaireMasterServiceImpl.deleteQuestion(questionId);
return new ResponseEntity<>(HttpStatus.OK);
}
}