PNXMPPFramework/Extensions/XEP-0184/XMPPMessage+XEP_0184.m
2016-02-24 16:56:39 +01:00

65 lines
1.4 KiB
Objective-C

#import "XMPPMessage+XEP_0184.h"
#import "NSXMLElement+XMPP.h"
@implementation XMPPMessage (XEP_0184)
- (BOOL)hasReceiptRequest
{
NSXMLElement *receiptRequest = [self elementForName:@"request" xmlns:@"urn:xmpp:receipts"];
return (receiptRequest != nil);
}
- (BOOL)hasReceiptResponse
{
NSXMLElement *receiptResponse = [self elementForName:@"received" xmlns:@"urn:xmpp:receipts"];
return (receiptResponse != nil);
}
- (NSString *)receiptResponseID
{
NSXMLElement *receiptResponse = [self elementForName:@"received" xmlns:@"urn:xmpp:receipts"];
return [receiptResponse attributeStringValueForName:@"id"];
}
- (XMPPMessage *)generateReceiptResponse
{
// Example:
//
// <message to="juliet">
// <received xmlns="urn:xmpp:receipts" id="ABC-123"/>
// </message>
NSXMLElement *received = [NSXMLElement elementWithName:@"received" xmlns:@"urn:xmpp:receipts"];
NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
NSString *to = [self fromStr];
if (to)
{
[message addAttributeWithName:@"to" stringValue:to];
}
NSString *msgid = [self elementID];
if (msgid)
{
[received addAttributeWithName:@"id" stringValue:msgid];
}
[message addChild:received];
return [[self class] messageFromElement:message];
}
- (void)addReceiptRequest
{
NSXMLElement *receiptRequest = [NSXMLElement elementWithName:@"request" xmlns:@"urn:xmpp:receipts"];
[self addChild:receiptRequest];
}
@end