private SendMessageAcceptedResponse(final String thingId, final MessageHeaders messageHeaders, final HttpStatusCode statusCode, final DittoHeaders dittoHeaders) { super(TYPE, thingId, Message.<Void>newBuilder(messageHeaders).build(), statusCode, dittoHeaders); }
private SendMessageAcceptedResponse(final String thingId, final MessageHeaders messageHeaders, final HttpStatusCode statusCode, final DittoHeaders dittoHeaders) { super(TYPE, thingId, Message.<Void>newBuilder(messageHeaders).build(), statusCode, dittoHeaders); }
.ifPresent(bytes -> messageBuilder.rawPayload(ByteBuffer.wrap(tryToDecode(bytes)))); return messageBuilder.build();
.ifPresent(bytes -> messageBuilder.rawPayload(ByteBuffer.wrap(tryToDecode(bytes)))); return messageBuilder.build();
/** * Deserializes the {@link Message} from the JSON representation - the {@code rawPayload} is decoded with Base64. * * @param <T> the type of the message's payload. * @param jsonObject the JsonObjectReader to use for reading the message * @return the Message */ protected static <T> Message<T> deserializeMessageFromJson(final JsonObject jsonObject) { final JsonObject messageObject = jsonObject.getValueOrThrow(MessageCommandResponse.JsonFields.JSON_MESSAGE); final JsonObject messageHeadersObject = messageObject.getValue(MessageCommandResponse.JsonFields.JSON_MESSAGE_HEADERS) .filter(JsonValue::isObject) .map(JsonValue::asObject) .orElseThrow(() -> JsonMissingFieldException.newBuilder() .fieldName( MessageCommandResponse.JsonFields.JSON_MESSAGE_HEADERS.getPointer().toString()) .build()); final Optional<JsonValue> messagePayloadOptional = messageObject.getValue(MessageCommand.JsonFields.JSON_MESSAGE_PAYLOAD); final MessageHeaders messageHeaders = MessageHeaders.of(messageHeadersObject); final MessageBuilder<T> messageBuilder = Message.<T>newBuilder(messageHeaders); MessagePayloadSerializer.deserialize(messagePayloadOptional, messageBuilder, messageHeaders); return messageBuilder.build(); }
/** * Deserializes the {@link Message} from the JSON representation - the {@code rawPayload} is decoded with Base64. * * @param <T> the type of the message's payload. * @param jsonObject the JsonObjectReader to use for reading the message * @return the Message */ protected static <T> Message<T> deserializeMessageFromJson(final JsonObject jsonObject) { final JsonObject messageObject = jsonObject.getValueOrThrow(MessageCommandResponse.JsonFields.JSON_MESSAGE); final JsonObject messageHeadersObject = messageObject.getValue(MessageCommandResponse.JsonFields.JSON_MESSAGE_HEADERS) .filter(JsonValue::isObject) .map(JsonValue::asObject) .orElseThrow(() -> JsonMissingFieldException.newBuilder() .fieldName( MessageCommandResponse.JsonFields.JSON_MESSAGE_HEADERS.getPointer().toString()) .build()); final Optional<JsonValue> messagePayloadOptional = messageObject.getValue(MessageCommand.JsonFields.JSON_MESSAGE_PAYLOAD); final MessageHeaders messageHeaders = MessageHeaders.of(messageHeadersObject); final MessageBuilder<T> messageBuilder = Message.<T>newBuilder(messageHeaders); MessagePayloadSerializer.deserialize(messagePayloadOptional, messageBuilder, messageHeaders); return messageBuilder.build(); }
/** * Deserializes the {@link Message} from the JSON representation - the {@code rawPayload} is decoded with Base64. * * @param <T> the type of the message's payload. * @param jsonObject the JsonObjectReader to use for reading the message. * @return the Message. */ protected static <T> Message<T> deserializeMessageFromJson(final JsonObject jsonObject) { final JsonObject messageObject = jsonObject.getValueOrThrow(MessageCommand.JsonFields.JSON_MESSAGE); final JsonObject messageHeadersObject = messageObject.getValueOrThrow(MessageCommand.JsonFields.JSON_MESSAGE_HEADERS); final Optional<JsonValue> messagePayloadOptional = messageObject.getValue(MessageCommand.JsonFields.JSON_MESSAGE_PAYLOAD); final MessageHeaders messageHeaders = MessageHeaders.of(messageHeadersObject); final MessageBuilder<T> messageBuilder = Message.newBuilder(messageHeaders); MessagePayloadSerializer.deserialize(messagePayloadOptional, messageBuilder, messageHeaders); return messageBuilder.build(); }
/** * Deserializes the {@link Message} from the JSON representation - the {@code rawPayload} is decoded with Base64. * * @param <T> the type of the message's payload. * @param jsonObject the JsonObjectReader to use for reading the message. * @return the Message. */ protected static <T> Message<T> deserializeMessageFromJson(final JsonObject jsonObject) { final JsonObject messageObject = jsonObject.getValueOrThrow(MessageCommand.JsonFields.JSON_MESSAGE); final JsonObject messageHeadersObject = messageObject.getValueOrThrow(MessageCommand.JsonFields.JSON_MESSAGE_HEADERS); final Optional<JsonValue> messagePayloadOptional = messageObject.getValue(MessageCommand.JsonFields.JSON_MESSAGE_PAYLOAD); final MessageHeaders messageHeaders = MessageHeaders.of(messageHeadersObject); final MessageBuilder<T> messageBuilder = Message.newBuilder(messageHeaders); MessagePayloadSerializer.deserialize(messagePayloadOptional, messageBuilder, messageHeaders); return messageBuilder.build(); }
private Function<ByteBuffer, MessageCommand<?, ?>> buildSendFeatureMessage(final MessageDirection direction, final RequestContext ctx, final DittoHeaders dittoHeaders, final String thingId, final String featureId, final String msgSubject, final Duration timeout) { final HttpRequest httpRequest = ctx.getRequest(); return payload -> { final ContentType contentType = httpRequest.entity() .getContentType(); final MessageHeaders headers = MessageHeaders.newBuilder(direction, thingId, normalizeSubject(msgSubject)) .featureId(featureId) .correlationId(dittoHeaders.getCorrelationId().orElse(null)) .contentType(contentType .toString()) .timeout(timeout) .timestamp(OffsetDateTime.now()) .validationUrl(httpRequest.getHeader(X_DITTO_VALIDATION_URL) .map(HttpHeader::value) .orElse(null)) .putHeaders(dittoHeaders) .build(); final MessageBuilder<Object> messageBuilder = initMessageBuilder(payload, contentType, headers); return SendFeatureMessage.of(thingId, featureId, messageBuilder.build(), enhanceHeaders(dittoHeaders)); }; }
private Function<ByteBuffer, MessageCommand<?, ?>> buildSendClaimMessage(final RequestContext ctx, final DittoHeaders dittoHeaders, final String thingId, final Duration timeout) { return payload -> { final ContentType contentType = ctx.getRequest() .entity() .getContentType(); final MessageHeaders headers = MessageHeaders.newBuilderForClaiming(thingId) .correlationId(dittoHeaders.getCorrelationId().orElse(null)) .contentType(contentType.toString()) .timeout(timeout) .timestamp(OffsetDateTime.now()) .putHeaders(dittoHeaders) .build(); final MessageBuilder<Object> messageBuilder = initMessageBuilder(payload, contentType, headers); return SendClaimMessage.of(thingId, messageBuilder.build(), enhanceHeaders(dittoHeaders)); }; }
private Function<ByteBuffer, MessageCommand<?, ?>> buildSendThingMessage(final MessageDirection direction, final RequestContext ctx, final DittoHeaders dittoHeaders, final String thingId, final String msgSubject, final Duration timeout) { return payload -> { final HttpRequest httpRequest = ctx.getRequest(); final ContentType contentType = httpRequest.entity().getContentType(); final MessageHeaders headers = MessageHeaders.newBuilder(direction, thingId, normalizeSubject(msgSubject)) .correlationId(dittoHeaders.getCorrelationId().orElse(null)) .contentType(contentType.toString()) .timeout(timeout) .timestamp(OffsetDateTime.now()) .putHeaders(dittoHeaders) .build(); final MessageBuilder<Object> messageBuilder = initMessageBuilder(payload, contentType, headers); return SendThingMessage.of(thingId, messageBuilder.build(), enhanceHeaders(dittoHeaders)); }; }