use of org.opensmartgridplatform.shared.exceptionhandling.OsgpException in project open-smart-grid-platform by OSGP.
the class DefaultDeviceResponseService method handleDefaultDeviceResponse.
public void handleDefaultDeviceResponse(final CorrelationIds ids, final String messageType, final int messagePriority, final ResponseMessageResultType deviceResult, final OsgpException exception) {
LOGGER.info("handleDefaultDeviceResponse for MessageType: {}", messageType);
ResponseMessageResultType result = deviceResult;
OsgpException osgpException = exception;
if (deviceResult == ResponseMessageResultType.NOT_OK && exception == null) {
LOGGER.error("Incorrect response received, exception should not be null when result is not ok");
osgpException = new TechnicalException(ComponentType.DOMAIN_TARIFF_SWITCHING, "An unknown error occurred");
}
if (deviceResult == ResponseMessageResultType.OK && exception != null) {
LOGGER.error("Incorrect response received, result should be set to not ok when exception is not null");
result = ResponseMessageResultType.NOT_OK;
}
final MessageMetadata metaData = new MessageMetadata.Builder().withCorrelationUid(ids.getCorrelationUid()).withDeviceIdentification(ids.getDeviceIdentification()).withOrganisationIdentification(ids.getOrganisationIdentification()).withMessageType(messageType).build();
final ResponseMessage responseMessage = ResponseMessage.newResponseMessageBuilder().withMessageMetadata(metaData).withResult(result).withOsgpException(osgpException).withMessagePriority(messagePriority).build();
this.webServiceResponseMessageSender.send(responseMessage);
}
use of org.opensmartgridplatform.shared.exceptionhandling.OsgpException in project open-smart-grid-platform by OSGP.
the class TariffSwitchingAdHocManagementEndpoint method getDevices.
@PayloadRoot(localPart = "GetDevicesRequest", namespace = NAMESPACE)
@ResponsePayload
public GetDevicesResponse getDevices(@OrganisationIdentification final String organisationIdentification, @RequestPayload final GetDevicesRequest request) throws OsgpException {
LOGGER.info("Get Devices Request received from organisation: {}.", organisationIdentification);
final GetDevicesResponse response = new GetDevicesResponse();
try {
final Page<Device> page = this.adHocManagementService.findAllDevices(organisationIdentification, request.getPage());
final DevicePage devicePage = new DevicePage();
devicePage.setTotalPages(page.getTotalPages());
devicePage.getDevices().addAll(this.adHocManagementMapper.mapAsList(page.getContent(), org.opensmartgridplatform.adapter.ws.schema.tariffswitching.adhocmanagement.Device.class));
response.setDevicePage(devicePage);
} catch (final ConstraintViolationException e) {
throw new FunctionalException(FunctionalExceptionType.VALIDATION_ERROR, COMPONENT_WS_TARIFF_SWITCHING, new ValidationException(e.getConstraintViolations()));
} catch (final Exception e) {
this.handleException(e);
}
return response;
}
use of org.opensmartgridplatform.shared.exceptionhandling.OsgpException in project open-smart-grid-platform by OSGP.
the class TariffSwitchingAdHocManagementEndpoint method getStatus.
// === GET STATUS ===
@PayloadRoot(localPart = "GetStatusRequest", namespace = NAMESPACE)
@ResponsePayload
public GetStatusAsyncResponse getStatus(@OrganisationIdentification final String organisationIdentification, @RequestPayload final GetStatusRequest request, @MessagePriority final String messagePriority) throws OsgpException {
LOGGER.info("Get Status received from organisation: {} for device: {} with message priority: {}.", organisationIdentification, request.getDeviceIdentification(), messagePriority);
final GetStatusAsyncResponse response = new GetStatusAsyncResponse();
try {
final String correlationUid = this.adHocManagementService.enqueueGetTariffStatusRequest(organisationIdentification, request.getDeviceIdentification(), MessagePriorityEnum.getMessagePriority(messagePriority));
final AsyncResponse asyncResponse = new AsyncResponse();
asyncResponse.setCorrelationUid(correlationUid);
asyncResponse.setDeviceId(request.getDeviceIdentification());
response.setAsyncResponse(asyncResponse);
} catch (final Exception e) {
this.handleException(e);
}
return response;
}
use of org.opensmartgridplatform.shared.exceptionhandling.OsgpException in project open-smart-grid-platform by OSGP.
the class AdHocManagementService method handleGetDataResponse.
public void handleGetDataResponse(final GetDataResponseDto dataResponseDto, final CorrelationIds ids, final String messageType, final ResponseMessageResultType responseMessageResultType, final OsgpException osgpException) {
LOGGER.info("handleResponse for MessageType: {}", messageType);
ResponseMessageResultType result = ResponseMessageResultType.OK;
GetDataResponse dataResponse = null;
OsgpException exception = null;
try {
if (responseMessageResultType == ResponseMessageResultType.NOT_OK || osgpException != null) {
LOGGER.error("Device Response not ok.", osgpException);
throw osgpException;
}
this.handleResponseMessageReceived(ids.getDeviceIdentification());
dataResponse = this.mapper.map(dataResponseDto, GetDataResponse.class);
} catch (final Exception e) {
LOGGER.error("Unexpected Exception", e);
result = ResponseMessageResultType.NOT_OK;
exception = this.ensureOsgpException(e, "Exception occurred while getting data");
}
// Support for Push messages, generate correlationUid
String actualCorrelationUid = ids.getCorrelationUid();
if ("no-correlationUid".equals(actualCorrelationUid)) {
actualCorrelationUid = this.correlationIdProviderUUIDService.getCorrelationId("DeviceGenerated", ids.getDeviceIdentification());
}
final ResponseMessage responseMessage = ResponseMessage.newResponseMessageBuilder().withIds(ids).withCorrelationUid(actualCorrelationUid).withMessageType(messageType).withResult(result).withOsgpException(exception).withDataObject(dataResponse).build();
this.webServiceResponseMessageSender.send(responseMessage, messageType);
}
use of org.opensmartgridplatform.shared.exceptionhandling.OsgpException in project open-smart-grid-platform by OSGP.
the class AdHocManagementService method handleSetDataResponse.
public void handleSetDataResponse(final EmptyResponseDto emptyResponseDto, final CorrelationIds ids, final String messageType, final ResponseMessageResultType responseMessageResultType, final OsgpException osgpException) {
LOGGER.info("handleResponse for MessageType: {}", messageType);
ResponseMessageResultType result = ResponseMessageResultType.OK;
EmptyResponse emptyResponse = null;
OsgpException exception = null;
try {
if (responseMessageResultType == ResponseMessageResultType.NOT_OK || osgpException != null) {
LOGGER.error("Device Response not ok.", osgpException);
throw osgpException;
}
this.handleResponseMessageReceived(ids.getDeviceIdentification());
emptyResponse = this.mapper.map(emptyResponseDto, EmptyResponse.class);
} catch (final Exception e) {
LOGGER.error("Unexpected Exception", e);
result = ResponseMessageResultType.NOT_OK;
exception = this.ensureOsgpException(e, "Exception occurred while setting data");
}
final ResponseMessage responseMessage = ResponseMessage.newResponseMessageBuilder().withIds(ids).withResult(result).withOsgpException(exception).withDataObject(emptyResponse).build();
this.webServiceResponseMessageSender.send(responseMessage, messageType);
}
Aggregations