Question

I'm storing user chat messages in custom table. And I wish to retrieve messages between two users. For now I'm using the following code

NSNumber *user_id, *user2_id;
...
//chatMessages = [dict valueForKey:@"items"];
NSMutableDictionary *getRequest = [NSMutableDictionary dictionary];
[getRequest setObject:@"created_at" forKey:@"sort_asc"];
[getRequest setObject:[NSArray arrayWithObjects:user_id,user2_id, nil] forKey:@"user_id[in]"];
[getRequest setObject:[NSArray arrayWithObjects:user2_id,user_id, nil] forKey:@"receiver_id[in]"];

[QBCustomObjects objectsWithClassName:@"Chat" extendedRequest:getRequest delegate:self];

but this retrieves some strange result. In SQL I would try

WHERE (user_id='firstUser' AND receiver_id='anotherUser') or (user_id='anotherUser' AND receiver_id='firstUser')

but I do not understand how can I ask the same thing from QuickBlox.

Was it helpful?

Solution

You can you try next getRequest:

 NSMutableDictionary *getRequest = [NSMutableDictionary dictionary];  
 [getRequest setObject:@"created_at" forKey:@"sort_asc"];
 NSArray *users = @[@(2000), @(1992)];
 [getRequest setObject:users forKey:@"receiver[in]"];  
 [getRequest setObject:users forKey:@"sender[in]"];
 [QBCustomObjects objectsWithClassName:@"Chat" extendedRequest:getRequest delegate:self];

In this case I get all messages between users with id 2000 and 1992

UPD: now it seems correct. (Try pass same users' id array in getRequest)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top