Skip to content

Commit de8df3f

Browse files
committed
Messages update and delete with versions.
1 parent 44b2199 commit de8df3f

17 files changed

Lines changed: 1006 additions & 11 deletions

Ably.xcodeproj/project.pbxproj

Lines changed: 32 additions & 8 deletions
Large diffs are not rendered by default.

Source/ARTChannel.m

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,34 @@ - (void)publish:(NSArray<ARTMessage *> *)messages callback:(nullable ARTCallback
153153
[self internalPostMessages:messagesWithDataEncoded callback:callback];
154154
}
155155

156+
- (void)updateMessage:(ARTMessage *)message
157+
operation:(nullable ARTMessageOperation *)operation
158+
params:(nullable NSDictionary<NSString *, ARTStringifiable *> *)params
159+
wrapperSDKAgents:(nullable NSStringDictionary *)wrapperSDKAgents
160+
callback:(nullable ARTCallback)callback {
161+
NSAssert(false, @"-[%@ %@] should always be overriden.", self.class, NSStringFromSelector(_cmd));
162+
}
163+
164+
- (void)deleteMessage:(ARTMessage *)message
165+
operation:(nullable ARTMessageOperation *)operation
166+
params:(nullable NSDictionary<NSString *, ARTStringifiable *> *)params
167+
wrapperSDKAgents:(nullable NSStringDictionary *)wrapperSDKAgents
168+
callback:(nullable ARTCallback)callback {
169+
NSAssert(false, @"-[%@ %@] should always be overriden.", self.class, NSStringFromSelector(_cmd));
170+
}
171+
172+
- (void)getMessageWithSerial:(NSString *)serial
173+
wrapperSDKAgents:(nullable NSStringDictionary *)wrapperSDKAgents
174+
callback:(ARTMessageErrorCallback)callback {
175+
NSAssert(false, @"-[%@ %@] should always be overriden.", self.class, NSStringFromSelector(_cmd));
176+
}
177+
178+
- (void)getMessageVersionsWithSerial:(NSString *)serial
179+
wrapperSDKAgents:(nullable NSStringDictionary *)wrapperSDKAgents
180+
callback:(ARTPaginatedMessagesCallback)callback {
181+
NSAssert(false, @"-[%@ %@] should always be overriden.", self.class, NSStringFromSelector(_cmd));
182+
}
183+
156184
- (BOOL)exceedMaxSize:(NSArray<ARTBaseMessage *> *)messages {
157185
NSInteger size = 0;
158186
for (ARTMessage *message in messages) {

Source/ARTMessageOperation.m

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#import "ARTMessageOperation.h"
2+
#import "ARTMessageOperation+Private.h"
3+
4+
@implementation ARTMessageOperation
5+
6+
- (instancetype)initWithClientId:(NSString *)clientId descriptionText:(NSString *)descriptionText metadata:(NSDictionary<NSString *, NSString *> *)metadata {
7+
self = [super init];
8+
if (self) {
9+
_clientId = clientId;
10+
_descriptionText = descriptionText;
11+
_metadata = metadata;
12+
}
13+
return self;
14+
}
15+
16+
- (id)copyWithZone:(NSZone *)zone {
17+
ARTMessageOperation *operation = [[[self class] allocWithZone:zone] init];
18+
operation->_clientId = self.clientId;
19+
operation->_descriptionText = self.descriptionText;
20+
operation->_metadata = self.metadata;
21+
return operation;
22+
}
23+
24+
- (NSString *)description {
25+
NSMutableString *description = [NSMutableString stringWithFormat:@"<%@: %p> {\n", self.class, self];
26+
[description appendFormat:@" clientId: %@,\n", self.clientId];
27+
[description appendFormat:@" descriptionText: %@,\n", self.descriptionText];
28+
[description appendFormat:@" metadata: %@\n", self.metadata];
29+
[description appendFormat:@"}"];
30+
return description;
31+
}
32+
33+
- (void)writeToDictionary:(NSMutableDictionary<NSString *, id> *)dictionary {
34+
if (self.clientId) {
35+
dictionary[@"clientId"] = self.clientId;
36+
}
37+
if (self.descriptionText) {
38+
dictionary[@"description"] = self.descriptionText;
39+
}
40+
if (self.metadata) {
41+
dictionary[@"metadata"] = self.metadata;
42+
}
43+
}
44+
45+
+ (nullable instancetype)createFromDictionary:(nonnull NSDictionary *)dictionary {
46+
NSAssert(false, @"Not implemented");
47+
return nil;
48+
}
49+
50+
- (nullable instancetype)initWithDictionary:(nonnull NSDictionary *)dictionary {
51+
NSAssert(false, @"Not implemented");
52+
return nil;
53+
}
54+
55+
@end

Source/ARTRealtimeChannel.m

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,22 @@ - (void)publish:(NSArray<ARTMessage *> *)messages callback:(nullable ARTCallback
144144
[_internal publish:messages callback:callback];
145145
}
146146

147+
- (void)updateMessage:(ARTMessage *)message operation:(nullable ARTMessageOperation *)operation params:(nullable NSDictionary<NSString *, ARTStringifiable *> *)params callback:(nullable ARTCallback)callback {
148+
[_internal updateMessage:message operation:operation params:params wrapperSDKAgents:nil callback:callback];
149+
}
150+
151+
- (void)deleteMessage:(ARTMessage *)message operation:(nullable ARTMessageOperation *)operation params:(nullable NSDictionary<NSString *, ARTStringifiable *> *)params callback:(nullable ARTCallback)callback {
152+
[_internal deleteMessage:message operation:operation params:params wrapperSDKAgents:nil callback:callback];
153+
}
154+
155+
- (void)getMessageWithSerial:(NSString *)serial callback:(ARTMessageErrorCallback)callback {
156+
[_internal getMessageWithSerial:serial wrapperSDKAgents:nil callback:callback];
157+
}
158+
159+
- (void)getMessageVersionsWithSerial:(NSString *)serial callback:(ARTPaginatedMessagesCallback)callback {
160+
[_internal getMessageVersionsWithSerial:serial wrapperSDKAgents:nil callback:callback];
161+
}
162+
147163
- (void)history:(ARTPaginatedMessagesCallback)callback {
148164
[_internal historyWithWrapperSDKAgents:nil completion:callback];
149165
}
@@ -451,6 +467,30 @@ - (void)sendObjectWithObjectMessages:(NSArray<id<APObjectMessageProtocol>> *)obj
451467
}
452468
#endif
453469

470+
- (void)updateMessage:(ARTMessage *)message
471+
operation:(nullable ARTMessageOperation *)operation
472+
params:(nullable NSDictionary<NSString *, ARTStringifiable *> *)params
473+
wrapperSDKAgents:(nullable NSStringDictionary *)wrapperSDKAgents
474+
callback:(nullable ARTCallback)callback {
475+
[self.restChannel updateMessage:message operation:operation params:params wrapperSDKAgents:wrapperSDKAgents callback:callback];
476+
}
477+
478+
- (void)deleteMessage:(ARTMessage *)message
479+
operation:(nullable ARTMessageOperation *)operation
480+
params:(nullable NSDictionary<NSString *, ARTStringifiable *> *)params
481+
wrapperSDKAgents:(nullable NSStringDictionary *)wrapperSDKAgents
482+
callback:(nullable ARTCallback)callback {
483+
[self.restChannel deleteMessage:message operation:operation params:params wrapperSDKAgents:wrapperSDKAgents callback:callback];
484+
}
485+
486+
- (void)getMessageWithSerial:(NSString *)serial wrapperSDKAgents:(nullable NSStringDictionary *)wrapperSDKAgents callback:(ARTMessageErrorCallback)callback {
487+
[self.restChannel getMessageWithSerial:serial wrapperSDKAgents:wrapperSDKAgents callback:callback];
488+
}
489+
490+
- (void)getMessageVersionsWithSerial:(NSString *)serial wrapperSDKAgents:(nullable NSStringDictionary *)wrapperSDKAgents callback:(ARTPaginatedMessagesCallback)callback {
491+
[self.restChannel getMessageVersionsWithSerial:serial wrapperSDKAgents:wrapperSDKAgents callback:callback];
492+
}
493+
454494
- (void)publishProtocolMessage:(ARTProtocolMessage *)pm callback:(ARTStatusCallback)cb {
455495
switch (self.state_nosync) {
456496
case ARTRealtimeChannelSuspended:

0 commit comments

Comments
 (0)