package qa.qcri.aidr.trainer.pybossa.service.impl; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import qa.qcri.aidr.trainer.pybossa.dao.ReportTemplateDao; import qa.qcri.aidr.trainer.pybossa.entity.ReportTemplate; import qa.qcri.aidr.trainer.pybossa.service.ReportTemplateService; import qa.qcri.aidr.trainer.pybossa.store.LookupCode; import java.util.List; /** * Created with IntelliJ IDEA. * User: jlucas * Date: 11/22/13 * Time: 1:30 PM * To change this template use File | Settings | File Templates. */ @Service("reportTemplateService") @Transactional(readOnly = false) public class ReportTemplateServiceImpl implements ReportTemplateService { private static Logger logger = Logger.getLogger(ReportTemplateServiceImpl.class); @Autowired private ReportTemplateDao reportTemplateDao; @Override @Transactional(readOnly = false, propagation= Propagation.REQUIRES_NEW) public void saveReportItem(ReportTemplate reportTemplate) { System.out.println("saveReportItem is called"); try{ if(isNumeric(reportTemplate.getTweetID()) && reportTemplate.getUrl().length() < 300 && reportTemplate.getAuthor().length() < 100){ reportTemplateDao.saveReportItem(reportTemplate); } } catch(Exception ex){ logger.error("saveReportItem exception"); logger.error(ex.getMessage()); System.out.println("saveReportItem is called error : " + ex.toString()); throw new RuntimeException(ex.getMessage()); } //To change body of implemented methods use File | Settings | File Templates. } @Override public List<ReportTemplate> getReportTemplateWithUniqueKey(String uniqueKey) { return reportTemplateDao.getReportTemplateWithUniqueKey("status", LookupCode.TEMPLATE_IS_READY_FOR_EXPORT, uniqueKey); //To change body of implemented methods use File | Settings | File Templates. } @Override public List<ReportTemplate> getReportTemplateByClientApp(Long clientAppID, Integer status) { return reportTemplateDao.getReportTemplateByClientApp(clientAppID, status); //To change body of implemented methods use File | Settings | File Templates. } @Override @Transactional(readOnly = false) public void updateReportItem(ReportTemplate reportTemplate) { reportTemplateDao.updateReportItem(reportTemplate); //To change body of implemented methods use File | Settings | File Templates. } @Override public List<ReportTemplate> getReportTemplateSearchByTwittID(String field, String value) { return reportTemplateDao.getReportTemplateSearchBy(field, value); //To change body of implemented methods use File | Settings | File Templates. } private boolean isNumeric(String data){ boolean returnValue = false; try{ Long tweetID = Long.parseLong(data); returnValue = true; } catch(Exception e){ logger.error("isNumeric exception on TweetID: " + data); logger.error(e.getMessage()); } return returnValue; } }