diff --git a/Source/ARTJsonLikeEncoder.m b/Source/ARTJsonLikeEncoder.m index d63c08439..8059519bc 100644 --- a/Source/ARTJsonLikeEncoder.m +++ b/Source/ARTJsonLikeEncoder.m @@ -275,6 +275,8 @@ - (ARTMessage *)messageFromDictionary:(NSDictionary *)input { ARTMessage *message = [[ARTMessage alloc] init]; message.id = [input artString:@"id"]; message.name = [input artString:@"name"]; + message.action = ([input artNumber:@"action"] ?: [[NSNumber alloc] initWithInt:ARTMessageCreate]).integerValue; + message.serial = [input artString:@"serial"]; message.clientId = [input artString:@"clientId"]; message.data = [input objectForKey:@"data"]; message.encoding = [input artString:@"encoding"];; diff --git a/Source/include/Ably/ARTMessage.h b/Source/include/Ably/ARTMessage.h index 88d145170..e7b827156 100644 --- a/Source/include/Ably/ARTMessage.h +++ b/Source/include/Ably/ARTMessage.h @@ -4,6 +4,17 @@ #import #import +NS_SWIFT_SENDABLE +typedef NS_ENUM(NSUInteger, ARTMessageAction) { + ARTMessageUnset, + ARTMessageCreate, + ARTMessageUpdate, + ARTMessageDelete, + ARTMessageAnnotationCreate, + ARTMessageAnnotationDelete, + ARTMessageMetaOccupancy, +}; + NS_ASSUME_NONNULL_BEGIN /** @@ -14,6 +25,12 @@ NS_ASSUME_NONNULL_BEGIN /// The event name, if available @property (nullable, readwrite, nonatomic) NSString *name; +/// The action identifier +@property (readwrite, nonatomic) ARTMessageAction action; + +/// The serial lexicographic identifier +@property (nullable, readwrite, nonatomic) NSString *serial; + /** * Construct an `ARTMessage` object with an event name and payload. *