Search in sources :

Example 1 with InputArgumentException

use of eu.europa.ec.fisheries.uvms.exchange.model.exception.InputArgumentException in project UVMS-ExchangeModule-APP by UnionVMS.

the class ExchangeLogModelBean method createExchangeLog.

@Override
public ExchangeLogType createExchangeLog(ExchangeLogType log, String username) throws ExchangeModelException {
    if (log == null) {
        throw new InputArgumentException("No log to create");
    }
    if (log.getType() == null) {
        throw new InputArgumentException("No type in log to create");
    }
    try {
        ExchangeLog exchangeLog = LogMapper.toNewEntity(log, username);
        ExchangeLog persistedLog = logDao.createLog(exchangeLog);
        return LogMapper.toModel(persistedLog);
    } catch (ExchangeDaoException ex) {
        LOG.error("[ Error when creating Exchange log {} {}] {}", log, username, ex.getMessage());
        throw new ExchangeModelException("Error when creating Exchange log ");
    }
}
Also used : InputArgumentException(eu.europa.ec.fisheries.uvms.exchange.model.exception.InputArgumentException) ExchangeDaoException(eu.europa.ec.fisheries.uvms.exchange.exception.ExchangeDaoException) ExchangeModelException(eu.europa.ec.fisheries.uvms.exchange.model.exception.ExchangeModelException) ExchangeLog(eu.europa.ec.fisheries.uvms.exchange.entity.exchangelog.ExchangeLog)

Example 2 with InputArgumentException

use of eu.europa.ec.fisheries.uvms.exchange.model.exception.InputArgumentException in project UVMS-ExchangeModule-APP by UnionVMS.

the class ExchangeLogModelBean method getExchangeLogListByQuery.

@Override
public ListResponseDto getExchangeLogListByQuery(ExchangeListQuery query) throws ExchangeModelException {
    if (query == null) {
        throw new InputArgumentException("Exchange list query is null");
    }
    if (query.getPagination() == null) {
        throw new InputArgumentException("Pagination in Exchange query is null");
    }
    if (query.getExchangeSearchCriteria() == null) {
        throw new InputArgumentException("No search criterias in Exchange query");
    }
    try {
        ListResponseDto response = new ListResponseDto();
        List<ExchangeLogType> exchLogTypes = new ArrayList<>();
        Integer page = query.getPagination().getPage();
        Integer listSize = query.getPagination().getListSize();
        List<SearchValue> searchKeyValues = SearchFieldMapper.mapSearchField(query.getExchangeSearchCriteria().getCriterias());
        String sql = SearchFieldMapper.createSelectSearchSql(searchKeyValues, true, query.getSorting());
        LOG.info("sql:" + sql);
        String countSql = SearchFieldMapper.createCountSearchSql(searchKeyValues, true);
        LOG.info("countSql:" + countSql);
        Long numberMatches = logDao.getExchangeLogListSearchCount(countSql, searchKeyValues);
        List<ExchangeLog> exchangeLogEntityList = logDao.getExchangeLogListPaginated(page, listSize, sql, searchKeyValues);
        for (ExchangeLog entity : exchangeLogEntityList) {
            exchLogTypes.add(LogMapper.toModel(entity));
        }
        // Enriches the "first level logs" with info related to the related logs.
        enrichDtosWithRelatedLogsInfo(exchLogTypes);
        int numberOfPages = (int) (numberMatches / listSize);
        if (numberMatches % listSize != 0) {
            numberOfPages += 1;
        }
        response.setTotalNumberOfPages(numberOfPages);
        response.setCurrentPage(query.getPagination().getPage());
        response.setExchangeLogList(exchLogTypes);
        return response;
    } catch (ExchangeSearchMapperException | ExchangeDaoException | ParseException ex) {
        LOG.error("[ Error when getting ExchangeLogs by query {}] {} ", query, ex.getMessage());
        throw new ExchangeModelException(ex.getMessage());
    }
}
Also used : InputArgumentException(eu.europa.ec.fisheries.uvms.exchange.model.exception.InputArgumentException) ExchangeLogType(eu.europa.ec.fisheries.schema.exchange.v1.ExchangeLogType) ExchangeSearchMapperException(eu.europa.ec.fisheries.uvms.exchange.model.exception.ExchangeSearchMapperException) ArrayList(java.util.ArrayList) ExchangeLog(eu.europa.ec.fisheries.uvms.exchange.entity.exchangelog.ExchangeLog) ExchangeDaoException(eu.europa.ec.fisheries.uvms.exchange.exception.ExchangeDaoException) SearchValue(eu.europa.ec.fisheries.uvms.exchange.search.SearchValue) ExchangeModelException(eu.europa.ec.fisheries.uvms.exchange.model.exception.ExchangeModelException) ParseException(java.text.ParseException) ListResponseDto(eu.europa.ec.fisheries.uvms.exchange.model.dto.ListResponseDto)

Example 3 with InputArgumentException

use of eu.europa.ec.fisheries.uvms.exchange.model.exception.InputArgumentException in project UVMS-ExchangeModule-APP by UnionVMS.

the class ExchangeLogModelBean method setPollStatus.

@Override
public ExchangeLogType setPollStatus(PollStatus pollStatus, String username) throws ExchangeModelException {
    ExchangeLogType log = null;
    if (pollStatus == null || pollStatus.getPollGuid() == null) {
        throw new InputArgumentException("No poll id to update status");
    }
    try {
        List<ExchangeLog> exchangeLogByTypesRefAndGuid = logDao.getExchangeLogByTypesRefAndGuid(pollStatus.getPollGuid(), Collections.singletonList(TypeRefType.POLL));
        if (CollectionUtils.isNotEmpty(exchangeLogByTypesRefAndGuid)) {
            List<ExchangeLogStatus> statusList = exchangeLogByTypesRefAndGuid.get(0).getStatusHistory();
            statusList.add(LogMapper.toNewStatusEntity(exchangeLogByTypesRefAndGuid.get(0), pollStatus.getStatus(), username));
            exchangeLogByTypesRefAndGuid.get(0).setStatus(pollStatus.getStatus());
            ExchangeLog retEntity = logDao.updateLog(exchangeLogByTypesRefAndGuid.get(0));
            log = LogMapper.toModel(retEntity);
        }
    } catch (ExchangeDaoException ex) {
        LOG.error("[ Error when set poll status {} {}] {}", pollStatus, username, ex.getMessage());
        throw new ExchangeModelException("Error when update status of Exchange log ");
    }
    return log;
}
Also used : InputArgumentException(eu.europa.ec.fisheries.uvms.exchange.model.exception.InputArgumentException) ExchangeDaoException(eu.europa.ec.fisheries.uvms.exchange.exception.ExchangeDaoException) ExchangeLogType(eu.europa.ec.fisheries.schema.exchange.v1.ExchangeLogType) ExchangeModelException(eu.europa.ec.fisheries.uvms.exchange.model.exception.ExchangeModelException) ExchangeLog(eu.europa.ec.fisheries.uvms.exchange.entity.exchangelog.ExchangeLog) ExchangeLogStatus(eu.europa.ec.fisheries.uvms.exchange.entity.exchangelog.ExchangeLogStatus)

Example 4 with InputArgumentException

use of eu.europa.ec.fisheries.uvms.exchange.model.exception.InputArgumentException in project UVMS-ExchangeModule-APP by UnionVMS.

the class UnsentModelBean method resend.

@Override
public List<UnsentMessageType> resend(List<String> unsentMessageId) throws ExchangeModelException {
    if (unsentMessageId == null) {
        throw new InputArgumentException("No messageList to resend");
    }
    try {
        List<UnsentMessageType> unsentMessageList = new ArrayList<>();
        for (String messageId : unsentMessageId) {
            try {
                UnsentMessage message = dao.getByGuid(messageId);
                UnsentMessage removedMessage = dao.remove(message);
                unsentMessageList.add(UnsentMessageMapper.toModel(removedMessage));
            } catch (NoEntityFoundException e) {
                LOG.error("Couldn't find message to resend with guid: " + messageId);
            }
        }
        return unsentMessageList;
    } catch (ExchangeDaoException ex) {
        LOG.error("[ Error when resending message message list ] {}", ex.getMessage());
        throw new ExchangeModelException("Error when resending unsent message list");
    }
}
Also used : UnsentMessageType(eu.europa.ec.fisheries.schema.exchange.v1.UnsentMessageType) InputArgumentException(eu.europa.ec.fisheries.uvms.exchange.model.exception.InputArgumentException) ExchangeDaoException(eu.europa.ec.fisheries.uvms.exchange.exception.ExchangeDaoException) NoEntityFoundException(eu.europa.ec.fisheries.uvms.exchange.exception.NoEntityFoundException) ArrayList(java.util.ArrayList) UnsentMessage(eu.europa.ec.fisheries.uvms.exchange.entity.unsent.UnsentMessage) ExchangeModelException(eu.europa.ec.fisheries.uvms.exchange.model.exception.ExchangeModelException)

Example 5 with InputArgumentException

use of eu.europa.ec.fisheries.uvms.exchange.model.exception.InputArgumentException in project UVMS-ExchangeModule-APP by UnionVMS.

the class ExchangeLogModelBean method updateExchangeLogStatus.

@Override
public ExchangeLogType updateExchangeLogStatus(ExchangeLogStatusType status, String username) throws ExchangeModelException {
    if (status == null || status.getGuid() == null || status.getGuid().isEmpty()) {
        throw new InputArgumentException("No exchange log to update status");
    }
    if (status.getHistory() == null || status.getHistory().isEmpty() || status.getHistory().size() != 1) {
        throw new InputArgumentException("Non valid status to update to");
    }
    try {
        ExchangeLogStatusHistoryType updateStatus = status.getHistory().get(0);
        ExchangeLog exchangeLog = logDao.getExchangeLogByGuid(status.getGuid());
        List<ExchangeLogStatus> statusList = exchangeLog.getStatusHistory();
        statusList.add(LogMapper.toNewStatusEntity(exchangeLog, updateStatus.getStatus(), username));
        exchangeLog.setStatus(updateStatus.getStatus());
        ExchangeLog retEntity = logDao.updateLog(exchangeLog);
        ExchangeLogType retType = LogMapper.toModel(retEntity);
        return retType;
    } catch (ExchangeDaoException ex) {
        LOG.error("[ Error when update status of Exchange log {} {}] {}", status, username, ex.getMessage());
        throw new ExchangeModelException("Error when update status of Exchange log", ex);
    }
}
Also used : InputArgumentException(eu.europa.ec.fisheries.uvms.exchange.model.exception.InputArgumentException) ExchangeLogStatusHistoryType(eu.europa.ec.fisheries.schema.exchange.v1.ExchangeLogStatusHistoryType) ExchangeDaoException(eu.europa.ec.fisheries.uvms.exchange.exception.ExchangeDaoException) ExchangeLogType(eu.europa.ec.fisheries.schema.exchange.v1.ExchangeLogType) ExchangeModelException(eu.europa.ec.fisheries.uvms.exchange.model.exception.ExchangeModelException) ExchangeLog(eu.europa.ec.fisheries.uvms.exchange.entity.exchangelog.ExchangeLog) ExchangeLogStatus(eu.europa.ec.fisheries.uvms.exchange.entity.exchangelog.ExchangeLogStatus)

Aggregations

ExchangeDaoException (eu.europa.ec.fisheries.uvms.exchange.exception.ExchangeDaoException)8 ExchangeModelException (eu.europa.ec.fisheries.uvms.exchange.model.exception.ExchangeModelException)8 InputArgumentException (eu.europa.ec.fisheries.uvms.exchange.model.exception.InputArgumentException)8 ExchangeLog (eu.europa.ec.fisheries.uvms.exchange.entity.exchangelog.ExchangeLog)5 ExchangeLogType (eu.europa.ec.fisheries.schema.exchange.v1.ExchangeLogType)3 ExchangeLogStatus (eu.europa.ec.fisheries.uvms.exchange.entity.exchangelog.ExchangeLogStatus)3 UnsentMessage (eu.europa.ec.fisheries.uvms.exchange.entity.unsent.UnsentMessage)3 ArrayList (java.util.ArrayList)3 UnsentMessageType (eu.europa.ec.fisheries.schema.exchange.v1.UnsentMessageType)2 ExchangeLogStatusHistoryType (eu.europa.ec.fisheries.schema.exchange.v1.ExchangeLogStatusHistoryType)1 ExchangeLogStatusType (eu.europa.ec.fisheries.schema.exchange.v1.ExchangeLogStatusType)1 TypeRefType (eu.europa.ec.fisheries.schema.exchange.v1.TypeRefType)1 NoEntityFoundException (eu.europa.ec.fisheries.uvms.exchange.exception.NoEntityFoundException)1 ListResponseDto (eu.europa.ec.fisheries.uvms.exchange.model.dto.ListResponseDto)1 ExchangeSearchMapperException (eu.europa.ec.fisheries.uvms.exchange.model.exception.ExchangeSearchMapperException)1 SearchValue (eu.europa.ec.fisheries.uvms.exchange.search.SearchValue)1 ParseException (java.text.ParseException)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1