/** * Create a {@link JpaSurvey} from the data in survey * * @param survey * @return */ @Transactional @Override public SurveyDTO createSurvey(SurveyDTO survey) { // remove questions/answers if they are present - only create the survey JpaSurvey jpaSurvey = surveyMapper.toJpaSurvey(survey); jpaSurvey.setLastUpdateDate(new Timestamp(new Date().getTime())); jpaSurvey = jpaSurveyDao.createSurvey(jpaSurvey); return surveyMapper.toSurvey(jpaSurvey); }
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS) @Override public SurveyDTO getSurveyByName(String surveyName) { JpaSurvey jpaSurvey = jpaSurveyDao.getSurveyByCanonicalName(surveyName); if (jpaSurvey == null) { return null; } SurveyDTO result = surveyMapper.toSurvey(jpaSurvey); result.retrieveText(this); return result; }
/** * Search for {@link JpaSurvey} specified by id. * * @param id * @return */ @Override @Transactional(readOnly = true, propagation = Propagation.SUPPORTS) public SurveyDTO getSurvey(long id) { JpaSurvey jpaSurvey = jpaSurveyDao.getSurvey(id); if (jpaSurvey == null) { return null; } SurveyDTO result = surveyMapper.toSurvey(jpaSurvey); result.retrieveText(this); return result; }
/** * Search for survey questions for the specified survey. Return only the question data. * * @param surveyId * @return */ @Transactional(readOnly = true, propagation = Propagation.SUPPORTS) @Override public List<SurveyQuestionDTO> getSurveyQuestions(Long surveyId) { JpaSurvey survey = jpaSurveyDao.getSurvey(surveyId); if (survey == null) { return null; } SurveyDTO surveyDTO = surveyMapper.toSurvey(survey); return Lists.newArrayList(surveyDTO.getSurveyQuestions()); }
/** * Update base survey data. Questions/answer relationships will not be included in the update. * * @param survey * @return */ @Transactional @Override public SurveyDTO updateSurvey(SurveyDTO survey) { JpaSurvey existingSurvey = jpaSurveyDao.getSurvey(survey.getId()); if (existingSurvey == null || existingSurvey.getStatus() == PublishedState.PUBLISHED) { log.warn("Cannot update survey"); return null; } // remove question/answer elements survey.setSurveyQuestions(null); JpaSurvey jpaSurvey = surveyMapper.toJpaSurvey(survey); jpaSurvey.setLastUpdateDate(new Timestamp(new Date().getTime())); jpaSurvey = jpaSurveyDao.updateSurvey(jpaSurvey); return surveyMapper.toSurvey(jpaSurvey); }