package ee.esutoniagodesu.service; import ee.esutoniagodesu.bean.ProjectDAO; import ee.esutoniagodesu.domain.core.table.TofuSentence; import ee.esutoniagodesu.domain.core.table.TofuSentenceTranslation; import ee.esutoniagodesu.pojo.test.compound.FilterCompoundSubmitDTO; import ee.esutoniagodesu.repository.domain.freq.TofuSentenceRepository; import ee.esutoniagodesu.repository.project.CoreDB; import ee.esutoniagodesu.security.SecurityUtils; import ee.esutoniagodesu.security.permission.Permission; import ee.esutoniagodesu.util.PaginationUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.domain.Page; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.inject.Inject; import java.util.List; @Service @Transactional(readOnly = true) public class TofuService { private static final Logger log = LoggerFactory.getLogger(TofuService.class); @Inject private ProjectDAO dao; @Inject private CoreDB coreDB; @Inject private TofuSentenceRepository tofuSentenceRepository; @Inject private KuromojiService kuromojiService; private String uuid() { return SecurityUtils.getUserUuid(); } @Transactional(readOnly = false) public TofuSentenceTranslation saveTranslation(TofuSentenceTranslation translation) { log.debug("saveTranslation: {}", translation); if (translation.getId() != null) { TofuSentenceTranslation tr = dao.find(TofuSentenceTranslation.class, translation.getId()); //CPE.check(tr, Permission.tofu_translation_save); } translation.setCreatedBy(uuid()); return dao.save(translation); } public TofuSentence findById(int id) { return coreDB.findUserTofuById(id, uuid()); } public Page<TofuSentence> getTofusByUser(int page, int limit) { Page<TofuSentence> result = tofuSentenceRepository.findAll(PaginationUtil.generatePageRequest(page, limit)); for (TofuSentence p : result) { p.setTranslation(coreDB.findUserTofuSentenceTranslation(p.getId(), uuid())); } return result; } public List<TofuSentence> byFilter(FilterCompoundSubmitDTO filter) { throw new RuntimeException("not implemented"); } }