package edu.asu.spring.quadriga.service.projectblog.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import edu.asu.spring.quadriga.dao.projectblog.IProjectBlogEntryDAO;
import edu.asu.spring.quadriga.domain.projectblog.IProjectBlogEntry;
import edu.asu.spring.quadriga.dto.ProjectBlogEntryDTO;
import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException;
import edu.asu.spring.quadriga.mapper.ProjectBlogEntryDTOMapper;
import edu.asu.spring.quadriga.service.projectblog.IProjectBlogEntryManager;
/**
* This class provides method to add and retrieve {@linkplain IProjectBlogEntry}
* instances from table <tbl_projectblogentry>
*
* @author PawanMahalle
*
*/
@Service
public class ProjectBlogEntryManager implements IProjectBlogEntryManager {
@Autowired
private IProjectBlogEntryDAO projectBlogEntryDAO;
@Autowired
private ProjectBlogEntryDTOMapper projectBlogEntryDTOMapper;
/**
* {@inheritDoc}
*/
@Override
@Transactional
public void addNewProjectBlogEntry(IProjectBlogEntry projectBlogEntry) {
projectBlogEntry.setProjectBlogEntryId(projectBlogEntryDAO.generateUniqueID());
projectBlogEntry.setCreatedDate(new Date());
ProjectBlogEntryDTO projectBlogEntryDTO = projectBlogEntryDTOMapper.getProjectBlogEntryDTO(projectBlogEntry);
projectBlogEntryDAO.saveNewDTO(projectBlogEntryDTO);
}
/**
* {@inheritDoc}
*/
@Override
public List<IProjectBlogEntry> getProjectBlogEntryList(String projectId, Integer limit)
throws QuadrigaStorageException {
List<ProjectBlogEntryDTO> projectBlogEntryDTOList = projectBlogEntryDAO
.getProjectBlogEntryDTOListByProjectId(projectId, limit);
List<IProjectBlogEntry> projectBlogEntryList = new ArrayList<>();
for (ProjectBlogEntryDTO projectBlogEntryDTO : projectBlogEntryDTOList) {
projectBlogEntryList.add(projectBlogEntryDTOMapper.getProjectBlogEntry(projectBlogEntryDTO));
}
return projectBlogEntryList;
}
/**
* {@inheritDoc}
*/
@Override
public IProjectBlogEntry getProjectBlogEntryDetails(String projectBlogEntryId) throws QuadrigaStorageException {
ProjectBlogEntryDTO projectBlogEntryDTO = projectBlogEntryDAO.getDTO(projectBlogEntryId);
IProjectBlogEntry projectBlogEntry = projectBlogEntryDTOMapper.getProjectBlogEntry(projectBlogEntryDTO);
return projectBlogEntry;
}
}