package com.huixinpn.dionysus.controller.psychtest; import org.springframework.web.bind.annotation.RestController; @RestController public class TestingController { // @Autowired // private PsychTestRepository testRepository; // // @Autowired // private PsychTestQuestionRepository testItemRepository; // // @Autowired // private PsychTestingRepository testingRepository; // // @Autowired // private PsychTestingSelectionRepository selectionRepository; // // @RequestMapping(value = "/testing", method = RequestMethod.GET) // public // @ResponseBody // ResponseEntity<PsychTestingData> startTesting(@RequestParam Long tid) { //must have /testing?tid= format to start a testing against PsychTest.getId() == tid // PsychTest test = testRepository.findOne(tid); // if (test == null) { // return new ResponseEntity<>(HttpStatus.NOT_FOUND); // } // PsychTesting testing = new PsychTesting(); // testing.setTest(test); // testing.setState(PsychTestingState.IN_PROGRESS); // testing = testingRepository.save(testing); // PsychTestingData result = new PsychTestingData(test); // result.setTesting_id(testing.getId()); // return new ResponseEntity<>(result, HttpStatus.OK); // } // // @RequestMapping(value = "/testings/{id}", method = RequestMethod.GET) // public // @ResponseBody // ResponseEntity<PsychTestingData> getTesting(@PathVariable Long id) { // PsychTesting testing = testingRepository.findOne(id); // if (testing == null || testing.getState() == PsychTestingState.CANCELED) { // return new ResponseEntity<>(HttpStatus.NOT_FOUND); // } else if (testing.getState() == PsychTestingState.IN_PROGRESS) { // PsychTest test = testing.getTest(); // PsychTestingData result = new PsychTestingData(test); // result.setTesting_id(id); // ArrayList<PsychTestingSelection> historySelections = (ArrayList<PsychTestingSelection>) testing.getSelections(); // int lastAnsweredIndex = historySelections.size() - 1; // if(lastAnsweredIndex > -1){ // result.setLastAnswered(historySelections.get(lastAnsweredIndex).getSelected().getId()); // } // return new ResponseEntity<>(result, HttpStatus.OK); // } else { // return new ResponseEntity<>(HttpStatus.OK); //TODO goto testing result page // } // } // // @RequestMapping(value = "/testings/{id}", method = {RequestMethod.PUT,RequestMethod.POST}) // public // @ResponseBody // ResponseEntity<Void> finishTesting(@PathVariable Long id) { // PsychTesting testing = testingRepository.findOne(id); // if (testing == null || testing.getState() == PsychTestingState.CANCELED) { // return new ResponseEntity<>(HttpStatus.NOT_FOUND); // } else if (testing.getState() == PsychTestingState.IN_PROGRESS) { // testing.setState(PsychTestingState.FINISHED); // testingRepository.save(testing); // return new ResponseEntity<>(HttpStatus.OK); // TODO calculating and display testing result page // } else { // return new ResponseEntity<>(HttpStatus.OK); //TODO directly goto testing result page // } // } // // // @RequestMapping(value = "/testings/{id}/{item_id}", method = RequestMethod.GET) // public // @ResponseBody // ResponseEntity<PsychTestItemData> // gotoItem(@PathVariable Long id, @PathVariable Long item_id, @RequestParam(required = false) boolean answered) { // PsychTestItemData itemData = new PsychTestItemData(testItemRepository.findOne(item_id)); // if (answered) { // PsychTestingSelection selection = selectionRepository.findByTestingAndItem(id, item_id); // itemData.setSelected(selection.getSelected().getId()); // } // return new ResponseEntity<>(itemData, HttpStatus.OK); // } // // @RequestMapping(value = "/testings/{id}/{item_id}", method = {RequestMethod.POST,RequestMethod.PUT}) // public // @ResponseBody // ResponseEntity<Void> // saveAnswer(@PathVariable Long id, @PathVariable Long item_id, @RequestBody PsychTestingSelectionData selectionData) { // PsychTestingSelection selection = selectionRepository.findByTestingAndItem(id, item_id); // if (selection != null) { // selection.setSelected(new PsychTestQuestionOption(selectionData.getOption_id())); // selection.setAnswer(selectionData.getAnswer()); // selectionRepository.save(selection); // } else { // selection = new PsychTestingSelection(); // selection.setTesting(new PsychTesting(id)); // selection.setItem(new PsychTestQuestion(item_id)); // selection.setSelected(new PsychTestQuestionOption(selectionData.getOption_id())); // selection.setAnswer(selectionData.getAnswer()); // selectionRepository.save(selection); // } // return new ResponseEntity<>(HttpStatus.OK); // } }