package qa.qcri.aidr.trainer.api.dao.impl;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import qa.qcri.aidr.trainer.api.dao.ClientAppSourceDao;
import qa.qcri.aidr.trainer.api.entity.ClientAppSource;
import qa.qcri.aidr.trainer.api.store.StatusCodeType;
/**
* Created with IntelliJ IDEA.
* User: jlucas
* Date: 3/4/14
* Time: 12:17 PM
* To change this template use File | Settings | File Templates.
*/
@Repository
public class ClientAppSourceDaoImpl extends AbstractDaoImpl<ClientAppSource, String> implements ClientAppSourceDao {
private static Logger logger=Logger.getLogger(ClientAppSourceDaoImpl.class);
protected ClientAppSourceDaoImpl(){
super(ClientAppSource.class);
}
@Override
public List<ClientAppSource> findActiveSourcePerClient(Long clientAppID) {
return findByCriteria(Restrictions.conjunction()
.add(Restrictions.eq("clientAppID",clientAppID))
.add(Restrictions.eq("status", StatusCodeType.EXTERNAL_DATA_SOURCE_ACTIVE)));
}
@Override
public boolean findDuplicateSource(String fileURL, Long clientAppID) {
List<ClientAppSource> sources = findByCriteria(Restrictions.conjunction()
.add(Restrictions.eq("clientAppID",clientAppID))
.add(Restrictions.eq("sourceURL", fileURL)));
if(sources.size() > 0) {
return true;
}
return false;
}
@Override
public void acceptSource(String fileURL, Long clientAppID) {
List<ClientAppSource> sources = findActiveSourcePerClient( clientAppID );
if(sources.size() > 0){
logger.info("sources : EXTERNAL_DATA_SOURCE_UPLOADED");
ClientAppSource ca1 = new ClientAppSource(clientAppID, StatusCodeType.EXTERNAL_DATA_SOURCE_UPLOADED, fileURL);
save(ca1);
}
else{
logger.info("sources : EXTERNAL_DATA_SOURCE_ACTIVE");
ClientAppSource ca2 = new ClientAppSource(clientAppID, StatusCodeType.EXTERNAL_DATA_SOURCE_ACTIVE, fileURL);
save(ca2);
}
}
@Override
public void createNewSource(ClientAppSource clientAppSource) {
// save(clientAppSource);
save(clientAppSource);
}
}