Remove temporary adaptation for nested `IncomingMessage.online`
This commit is contained in:
parent
c3f53c4dd9
commit
215621a9b0
|
@ -298,17 +298,8 @@ public class MessageController {
|
|||
validateCompleteDeviceList(destination.get(), messages.getMessages(), isSyncMessage);
|
||||
validateRegistrationIds(destination.get(), messages.getMessages());
|
||||
|
||||
// iOS versions prior to 5.5.0.7 send `online` on IncomingMessageList.message, rather on the top-level entity.
|
||||
// This causes some odd client behaviors, such as persisted typing indicators, so we have a temporary
|
||||
// server-side adaptation.
|
||||
final boolean online = messages.getMessages()
|
||||
.stream()
|
||||
.findFirst()
|
||||
.map(IncomingMessage::isOnline)
|
||||
.orElse(messages.isOnline());
|
||||
|
||||
final List<Tag> tags = List.of(UserAgentTagUtil.getPlatformTag(userAgent),
|
||||
Tag.of(EPHEMERAL_TAG_NAME, String.valueOf(online)),
|
||||
Tag.of(EPHEMERAL_TAG_NAME, String.valueOf(messages.isOnline())),
|
||||
Tag.of(SENDER_TYPE_TAG_NAME, senderType));
|
||||
|
||||
for (IncomingMessage incomingMessage : messages.getMessages()) {
|
||||
|
@ -316,7 +307,7 @@ public class MessageController {
|
|||
|
||||
if (destinationDevice.isPresent()) {
|
||||
Metrics.counter(SENT_MESSAGE_COUNTER_NAME, tags).increment();
|
||||
sendMessage(source, destination.get(), destinationDevice.get(), messages.getTimestamp(), online, incomingMessage);
|
||||
sendMessage(source, destination.get(), destinationDevice.get(), messages.getTimestamp(), messages.isOnline(), incomingMessage);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -32,9 +32,6 @@ public class IncomingMessage {
|
|||
@JsonProperty
|
||||
private long timestamp; // deprecated
|
||||
|
||||
@JsonProperty
|
||||
private Boolean online; // use IncomingMessageList.online - this is a temporary adaptation for older clients
|
||||
|
||||
public String getDestination() {
|
||||
return destination;
|
||||
}
|
||||
|
@ -62,8 +59,4 @@ public class IncomingMessage {
|
|||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public Boolean isOnline() {
|
||||
return online;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -583,37 +583,6 @@ class MessageControllerTest {
|
|||
|
||||
}
|
||||
|
||||
|
||||
@ParameterizedTest
|
||||
@MethodSource
|
||||
void testOnlineMessage(final String fixture, final boolean expectedOnline) throws Exception {
|
||||
|
||||
final Response response =
|
||||
resources.getJerseyTest()
|
||||
.target(String.format("/v1/messages/%s", SINGLE_DEVICE_RECIPIENT))
|
||||
.request()
|
||||
.header("Authorization", AuthHelper.getAuthHeader(AuthHelper.VALID_NUMBER, AuthHelper.VALID_PASSWORD))
|
||||
.put(Entity.entity(mapper.readValue(jsonFixture(fixture), IncomingMessageList.class),
|
||||
MediaType.APPLICATION_JSON_TYPE));
|
||||
|
||||
assertThat("Good Response", response.getStatus(), is(equalTo(200)));
|
||||
|
||||
verify(messageSender, times(1)).sendMessage(any(Account.class), any(Device.class), any(Envelope.class), eq(expectedOnline));
|
||||
}
|
||||
|
||||
private static Stream<Arguments> testOnlineMessage() {
|
||||
return Stream.of(
|
||||
Arguments.of("fixtures/current_message_single_device.json", false), // default to `false` when absent
|
||||
Arguments.of("fixtures/online_message_true.json", true),
|
||||
Arguments.of("fixtures/online_message_false.json", false),
|
||||
// iOS versions prior to 5.5.0.7 send `online` on IncomingMessageList.message, rather on the top-level entity.
|
||||
// This causes some odd client behaviors, such as persisted typing indicators, so we have a temporary
|
||||
// server-side adaptation.
|
||||
Arguments.of("fixtures/online_message_true_nested_property.json", true),
|
||||
Arguments.of("fixtures/online_message_false_nested_property.json", false)
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testReportMessage() {
|
||||
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"online": false,
|
||||
"messages": [
|
||||
{
|
||||
"type": 1,
|
||||
"destinationDeviceId": 1,
|
||||
"body": "Zm9vYmFyego",
|
||||
"timestamp": 1234
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"messages": [
|
||||
{
|
||||
"type": 1,
|
||||
"destinationDeviceId": 1,
|
||||
"body": "Zm9vYmFyego",
|
||||
"timestamp": 1234,
|
||||
"online": false
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"online": true,
|
||||
"messages": [
|
||||
{
|
||||
"type": 1,
|
||||
"destinationDeviceId": 1,
|
||||
"body": "Zm9vYmFyego",
|
||||
"timestamp": 1234
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"messages": [
|
||||
{
|
||||
"type": 1,
|
||||
"destinationDeviceId": 1,
|
||||
"body": "Zm9vYmFyego",
|
||||
"timestamp": 1234,
|
||||
"online": true
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue