App Context API for PubNub Cocoa Objective-C SDK
This page describes App Context (formerly Objects v2). To upgrade from Objects v1, refer to the migration guide.
App Context provides easy-to-use, serverless storage for user and channel data you need to build innovative, reliable, scalable applications. Use App Context to easily store metadata about your application users and channels, and their membership associations, without the need to stand up your own databases.
PubNub also triggers events when object data is set or removed from the database. Clients can receive these events in real time and update their front-end application accordingly.
User
Get Metadata for All Users
Returns a paginated list of UUID Metadata objects, optionally including the custom data object for each.
Method(s)
To Get All UUID Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)allUUIDMetadataWithRequest:(PNFetchAllUUIDMetadataRequest *)request
completion:(PNFetchAllUUIDMetadataCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNFetchAllUUIDMetadataRequest | Yes | Fetch all UUID metadata request object with all information which should be used to fetch existing UUID metadata . |
block | PNFetchAllUUIDMetadataCompletionBlock | Yes | Fetch all UUID metadata request completion block . |
PNFetchAllUUIDMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, Use asc or desc to specify sort direction |
includeFields | PNUUIDFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNUUIDTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
PNFetchAllUUIDMetadataRequest *request = [PNFetchAllUUIDMetadataRequest new];
request.start = @"<next from previous request>";
// Add this request option, if returned metadata models should have value which has been set to
// 'custom' property.
request.includeFields = PNUUIDCustomField | PNUUIDTotalCountField;
request.limit = 40;
[self.client allUUIDMetadataWithRequest:request
completion:^(PNFetchAllUUIDMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* UUID metadata successfully fetched.
* Result object has following information:
* result.data.metadata - List of fetched UUID metadata.
show all 28 linesResponse
Response objects which is returned by client when fetch all UUID metadata
Object API is used:
@interface PNFetchAllUUIDMetadataData : PNServiceData
// List of UUID metadata objects created for current subscribe key.
@property (nonatomic, readonly, strong) NSArray<PNUUIDMetadata *> *metadata;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of objects created for current subscribe key.
*
* Value will be 0 in case if PNUUIDTotalCountField not added to 'includeFields'
show all 27 linesError response which is used in case of App Context API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesGet Metadata for All Users (Builder Pattern)
Method(s)
objects()
.allUUIDMetadata()
.includeFields(PNUUIDFields)
.includeCount(BOOL)
.filter(NSString *)
.sort(NSArray<NSString *> *)
.limit(NSUInteger)
.start(NSString *)
.end(NSString *)
.performWithCompletion(PNFetchAllUUIDMetadataCompletionBlock);
Parameter | Type | Required | Description |
---|---|---|---|
includeFields | PNUUIDFields | No | PNUUIDCustomField - include field with additional information from metadata which has been used during UUID metadata set requests. |
includeCount | BOOL | No | Whether total count of objects should be included in response or not. Default: YES |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
sort | NSArray | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
limit | NSUInteger | No | Maximum number of objects per fetched page. Default: 100 (which is also maximum value) |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
block | PNFetchAllUUIDMetadataCompletionBlock | Yes | Associated metadata fetch completion handler block. |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().allUUIDMetadata()
.start(@"<next from previous request>")
.includeFields(PNUUIDCustomField)
.includeCount(YES)
.limit(40)
.performWithCompletion(^(PNFetchAllUUIDMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* UUID metadata successfully fetched.
* Result object has following information:
* result.data.metadata - List of fetched UUID metadata.
* result.data.next - Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
* result.data.prev - Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
* result.data.totalCount - Total number of created UUID metadata.
*/
show all 24 linesResponse
Response objects which is returned by client when fetch all UUID metadata
Object API is used:
@interface PNFetchAllUUIDMetadataData : PNServiceData
// List of UUID metadata objects created for current subscribe key.
@property (nonatomic, readonly, strong) NSArray<PNUUIDMetadata *> *metadata;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of objects created for current subscribe key.
*
* Value will be 0 in case if PNUUIDTotalCountField not added to 'includeFields'
show all 27 linesError response which is used in case of App Context API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesGet User Metadata
Returns metadata for the specified UUID, optionally including the custom data object for each.
Method(s)
To Get UUID Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)uuidMetadataWithRequest:(PNFetchUUIDMetadataRequest *)request
completion:(PNFetchUUIDMetadataCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNFetchUUIDMetadataRequest | Yes | Fetch UUID metadata request with all information which should be used to fetch existing UUID metadata . |
block | PNFetchUUIDMetadataCompletionBlock | Yes | Fetch UUID metadata request completion block . |
PNFetchUUIDMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
includeFields | PNUUIDFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNUUIDCustomField ) can be reset by setting 0. |
uuid | NSString | No | Create and configure fetch UUID metadata request. uuid - Identifier for metadata should be fetched. Will be set to current PubNub configuration uuid if nil is set. |
Basic Usage
PNFetchUUIDMetadataRequest *request = [PNFetchUUIDMetadataRequest requestWithUUID:@"uuid"];
// Add this request option, if returned metadata model should have value which has been set to
// 'custom' property.
request.includeFields = PNUUIDCustomField;
[self.client uuidMetadataWithRequest:request
completion:^(PNFetchUUIDMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* UUID metadata successfully fetched.
* Fetched UUID metadata information available here: result.data.metadata
*/
} else {
/**
show all 22 linesResponse
Response objects which is returned by client when fetch UUID metadata
Object API is used:
@interface PNFetchUUIDMetadataData : PNServiceData
// Requested UUID metadata object.
@property (nonatomic, nullable, readonly, strong) PNUUIDMetadata *metadata;
@end
@interface PNFetchUUIDMetadataResult : PNResult
// Fetch UUID metadata request processed information.
@property (nonatomic, readonly, strong) PNFetchUUIDMetadataData *data;
@end
Error response which is used in case of App Context API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesGet User Metadata (Builder Pattern)
Method(s)
objects()
.uuidMetadata()
.uuid(NSString *)
.includeFields(PNUUIDFields)
.performWithCompletion(PNFetchUUIDMetadataCompletionBlock);
Parameter | Type | Required | Description |
---|---|---|---|
uuid | NSString | No | Identifier for which associated metadata should be fetched. Default: configured PubNub client uuid |
includeFields | PNUUIDMFields | No | PNUUIDCustomField - include field with additional information from metadata which has been used during UUID metadata set requests. Default: PNUUIDCustomField Default value can be reset by setting 0 |
block | PNFetchUUIDMetadataCompletionBlock | Yes | Fetch UUID metadata request completion block . |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().uuidMetadata()
.uuid(@"uuid")
.includeFields(PNUUIDCustomField)
.performWithCompletion(^(PNFetchUUIDMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* UUID metadata successfully fetched.
* Fetched UUID metadata information available here: result.data.metadata
*/
} else {
/**
* Handle UUID metadata fetch error. Check 'category' property to find out possible issue
* because of which request did fail.
*
* Request can be resent using: [status retry]
show all 18 linesResponse
Response objects which is returned by client when fetch UUID metadata
Object API is used:
@interface PNFetchUUIDMetadataData : PNServiceData
// Requested UUID metadata object.
@property (nonatomic, nullable, readonly, strong) PNUUIDMetadata *metadata;
@end
@interface PNFetchUUIDMetadataResult : PNResult
// Fetch UUID metadata request processed information.
@property (nonatomic, readonly, strong) PNFetchUUIDMetadataData *data;
@end
Error response which is used in case of App Context API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesSet User Metadata
Set metadata for a UUID in the database, optionally including the custom data object for each.
Method(s)
To Set UUID Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)setUUIDMetadataWithRequest:(PNSetUUIDMetadataRequest *)request
completion:(nullable PNSetUUIDMetadataCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNSetUUIDMetadataRequest | Yes | Set UUID metadata request with all information which should be associated with UUID . |
block | PNSetUUIDMetadataCompletionBlock | No | Set UUID metadata request completion block . |
PNSetUUIDMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
custom | NSDictionary | No | Additional / complex attributes which should be associated with metadata. |
externalId | NSString | No | Identifier from external service (database, auth service). |
profileUrl | NSString | No | URL at which profile available. |
includeFields | PNUUIDFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNUUIDCustomField ) can be reset by setting 0. |
email | NSString | No | Email address. |
name | NSString | No | Name which should be stored in metadata associated with specified identifier. |
uuid | NSString | No | Create and configure set UUID metadata request. uuid - Identifier with which metadata is linked. Will be set to current PubNub configuration uuid if nil is set. |
API limits
To learn about the maximum length of parameters used to set user metadata, refer to REST API docs.
Basic Usage
PNSetUUIDMetadataRequest *request = [PNSetUUIDMetadataRequest requestWithUUID:@"uuid"];
// With this option on, returned metadata model will have value which has been set to 'custom'
// property.
request.includeFields = PNUUIDCustomField;
request.custom = @{ @"age": @(39), @"status": @"Checking some stuff..." };
request.email = @"support@pubnub.com";
request.name = @"David";
[self.client setUUIDMetadataWithRequest:request completion:^(PNSetUUIDMetadataStatus *status) {
if (!status.isError) {
/**
* UUID metadata successfully has been set.
* UUID metadata information available here: status.data.metadata
*/
} else {
show all 23 linesResponse
Response objects which is returned by client when set UUID metadata
Object API is used:
@interface PNSetUUIDMetadataData : PNServiceData
// Updated UUID metadata object.
@property (nonatomic, nullable, readonly, strong) PNUUIDMetadata *metadata;
@end
@interface PNSetUUIDMetadataStatus : PNAcknowledgmentStatus
// Set UUID metadata request processed information.
@property (nonatomic, readonly, strong) PNSetUUIDMetadataData *data;
@end
Set User Metadata (Builder Pattern)
Method(s)
objects()
.setUUIDMetadata()
.uuid(NSString *)
.name(NSString *)
.externalId(NSString *)
.profileUrl(NSString *)
.custom(NSDictionary *)
.email(NSString *)
.includeFields(PNUUIDFields)
.performWithCompletion(nullable PNSetUUIDMetadataCompletionBlock);
API limits
To learn about the maximum length of parameters used to set user metadata, refer to REST API docs.
Parameter | Type | Required | Description |
---|---|---|---|
uuid | NSString | No | Identifier with which new metadata should be associated. Default: configured PubNub client uuid |
name | NSString | No | Name which should stored in metadata associated with specified UUID . |
externalId | NSString | No | External identifier (database, auth service) associated with specified UUID . |
profileUrl | NSString | No | External URL with information for specified UUID representation. |
custom | NSDictionary | No | Additional information which should be stored in metadata associated with specified UUID . |
email | NSString | No | Email address which should be stored in metadata associated with specified UUID . |
includeFields | PNUUIDFields | No | PNUUIDCustomField - include field with additional information from metadata which has been used during UUID metadata set requests. Default: PNUUIDCustomField Default value can be reset by setting 0. |
block | PNSetUUIDMetadataCompletionBlock | No | Set UUID metadata request completion block . |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().setUUIDMetadata()
.uuid(@"uuid")
.name(@"Serhii")
.externalId(@"93FVfHUAf4RLu79J7Q3ejLVu")
.profileUrl(@"https://pubnub.com")
.custom(@{ @"age": @(36) })
.email(@"support@pubnub.com")
.includeFields(PNUUIDCustomField)
.performWithCompletion(^(PNSetUUIDMetadataStatus *status) {
if (!status.isError) {
/**
* UUID metadata successfully has been set.
* UUID metadata information available here: status.data.metadata
*/
} else {
show all 23 linesResponse
Response objects which is returned by client when set UUID metadata
Object API is used:
@interface PNSetUUIDMetadataData : PNServiceData
// Updated UUID metadata object.
@property (nonatomic, nullable, readonly, strong) PNUUIDMetadata *metadata;
@end
@interface PNSetUUIDMetadataStatus : PNAcknowledgmentStatus
// Set UUID metadata request processed information.
@property (nonatomic, readonly, strong) PNSetUUIDMetadataData *data;
@end
Remove User Metadata
Removes the metadata from a specified UUID.
Method(s)
To Remove UUID Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)removeUUIDMetadataWithRequest:(PNRemoveUUIDMetadataRequest *)request
completion:(nullable PNRemoveUUIDMetadataCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNRemoveUUIDMetadataRequest | Yes | Remove UUID metadata request with information about existing metadata . |
block | PNRemoveUUIDMetadataCompletionBlock | No | Remove UUID metadata request completion block . |
PNRemoveUUIDMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
uuid | NSString | No | Create and configure delete user request. identifier - Create and configure remove UUID metadata request. Will be set to current PubNub configuration uuid if nil is set. |
Basic Usage
PNRemoveUUIDMetadataRequest *request = [PNRemoveUUIDMetadataRequest requestWithUUID:@"uuid"];
[self.client removeUUIDMetadataWithRequest:request completion:^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// UUID metadata successfully removed.
} else {
/**
* Handle UUID metadata remove error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when remove UUID metadata
Object API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesRemove User Metadata (Builder Pattern)
Method(s)
objects()
.removeUUIDMetadata()
.uuid(NSString *)
.performWithCompletion(nullable PNFetchUUIDMetadataCompletionBlock);
Parameter | Type | Required | Description |
---|---|---|---|
uuid | NSString | No | Identifier for which associated metadata should be removed. Default: configured PubNub client uuid |
block | PNRemoveUUIDMetadataCompletionBlock | No | Remove UUID metadata request completion block . |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().removeUUIDMetadata()
.uuid(@"uuid")
.performWithCompletion(^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// User successfully deleted.
} else {
/**
* Handle user delete error. Check 'category' property to find out possible issue
* because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when remove UUID metadata
Object API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesChannel
Get Metadata for All Channels
Returns a paginated list of Channel Metadata objects, optionally including the custom data object for each.
Method(s)
To Get All Channel Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)allChannelsMetadataWithRequest:(PNFetchAllChannelsMetadataRequest *)request
completion:(PNFetchAllChannelsMetadataCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNFetchAllChannelsMetadataRequest | Yes | Fetch all UUID metadata request object with all information which should be used to fetch existing UUID metadata . |
block | PNFetchAllChannelsMetadataCompletionBlock | Yes | Fetch all UUID metadata request completion block . |
PNFetchAllChannelsMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
includeFields | PNChannelFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelTotalCountField ) can be reset by setting 0. |
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
PNFetchAllChannelsMetadataRequest *request = [PNFetchAllChannelsMetadataRequest new];
request.start = @"<next from previous request>";
// Add this request option, if returned metadata models should have value which has been set to
// 'custom' property.
request.includeFields = PNUUIDCustomField | PNUUIDTotalCountField;
request.limit = 40;
[self.client allChannelsMetadataWithRequest:request
completion:^(PNFetchAllChannelsMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* Channels metadata successfully fetched.
* Result object has following information:
* result.data.metadata - List of fetched channels metadata.
* result.data.next - Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
show all 26 linesResponse
Response objects which is returned by client when fetch all UUID metadata
Object API is used:
@interface PNFetchAllChannelsMetadataData : PNServiceData
// List of channels metadata objects created for current subscribe key.
@property (nonatomic, readonly, strong) NSArray<PNChannelMetadata *> *metadata;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of objects created for current subscribe key.
*
* Value will be 0 in case if PNChannelTotalCountField not added to 'includeFields'
show all 27 linesError response which is used in case of App Context API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesGet Metadata for All Channels (Builder Pattern)
Method(s)
objects()
.allChannelsMetadata()
.includeFields(PNChannelFields)
.includeCount(BOOL)
.filter(NSString)
.sort(NSArray)
.limit(NSUInteger)
.start(NSString)
.end(NSString)
.performWithCompletion(PNFetchChannelMetadataCompletionBlock);
Parameter | Type | Required | Description |
---|---|---|---|
includeFields | PNChannelFields | No | PNChannelCustomField - include field with additional information from metadata which has been used during channel metadata set requests. |
includeCount | BOOL | No | Whether total count of objects should be included in response or not. Default: YES |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
sort | NSArray | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
limit | NSUInteger | No | Maximum number of objects per fetched page. Default: 100 (which is also maximum value) |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
block | PNFetchAllChannelsMetadataCompletionBlock | Yes | Fetch all UUID metadata request completion block . |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().allChannelsMetadata()
.start(@"<next from previous request>")
.includeFields(PNChannelCustomField)
.includeCount(YES)
.limit(40)
.performWithCompletion(^(PNFetchAllChannelsMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* Channels metadata successfully fetched.
* Result object has following information:
* result.data.metadata - List of fetched channels metadata.
* result.data.next - Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
* result.data.prev - Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
* result.data.totalCount - Total number of associated channel metadata.
} else {
show all 23 linesResponse
Response objects which is returned by client when fetch all UUID metadata
Object API is used:
@interface PNFetchAllChannelsMetadataData : PNServiceData
// List of channels metadata objects created for current subscribe key.
@property (nonatomic, readonly, strong) NSArray<PNChannelMetadata *> *metadata;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of objects created for current subscribe key.
*
* Value will be 0 in case if PNChannelTotalCountField not added to 'includeFields'
show all 27 linesError response which is used in case of App Context API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesGet Channel Metadata
Returns metadata for the specified Channel, optionally including the custom data object for each.
Method(s)
To Get Channel Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)channelMetadataWithRequest:(PNFetchChannelMetadataRequest *)request
completion:(PNFetchChannelMetadataCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNFetchChannelMetadataRequest | Yes | Fetch channel metadata request with all information which should be used to fetch existing channel metadata . |
block | PNFetchChannelMetadataCompletionBlock | Yes | Fetch channel metadata request completion block . |
PNFetchChannelMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
includeFields | PNChannelFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelCustomField ) can be reset by setting 0. |
channel | NSString | No | Create and configure fetch channel metadata request. channel - Name of channel for which metadata should be fetched. |
Basic Usage
PNFetchChannelMetadataRequest *request = [PNFetchChannelMetadataRequest requestWithChannel:@"channel"];
// Add this request option, if returned metadata model should have value which has been set to
// 'custom' property.
request.includeFields = PNChannelCustomField;
[self.client channelMetadataWithRequest:request
completion:^(PNFetchChannelsMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* Channel metadata successfully fetched.
* Channel metadata information available here: result.data.metadata
*/
} else {
/**
show all 22 linesResponse
Response objects which is returned by client when fetch channel metadata
Object API is used:
@interface PNFetchChannelMetadataData : PNServiceData
// Requested channel metadata object.
@property (nonatomic, nullable, readonly, strong) PNChannelMetadata *metadata;
@end
@interface PNFetchChannelsMetadataResult : PNResult
// Fetch channel metadata request processed information.
@property (nonatomic, readonly, strong) PNFetchChannelMetadataData *data;
@end
Error response which is used in case of App Context API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesGet Channel Metadata (Builder Pattern)
Method(s)
objects()
.channelMetadata(NSString *)
.includeFields(PNChannelFields)
.performWithCompletion(PNFetchChannelMetadataCompletionBlock);
Parameter | Type | Required | Description |
---|---|---|---|
channel | NSString | Yes | Name of channel for which associated metadata should be fetched. |
includeFields | NSString | No | PNChannelCustomField - include field with additional information from metadata which has been used during channel metadata set requests. Default: PNChannelCustomField Default value can be reset by setting 0 |
block | PNFetchChannelMetadataCompletionBlock | Yes | Fetch channel metadata request completion block . |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().channelMetadata(@"channel")
.includeFields(PNChannelCustomField)
.performWithCompletion(^(PNFetchChannelsMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* Channel metadata successfully fetched.
* Channel metadata information available here: result.data.metadata
*/
} else {
/**
* Handle channel metadata fetch error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
show all 17 linesResponse
Response objects which is returned by client when fetch channel metadata
Object API is used:
@interface PNFetchChannelMetadataData : PNServiceData
// Requested channel metadata object.
@property (nonatomic, nullable, readonly, strong) PNChannelMetadata *metadata;
@end
@interface PNFetchChannelsMetadataResult : PNResult
// Fetch channel metadata request processed information.
@property (nonatomic, readonly, strong) PNFetchChannelMetadataData *data;
@end
Error response which is used in case of App Context API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesSet Channel Metadata
Set metadata for a Channel in the database, optionally including the custom data object for each.
Method(s)
To Set Channel Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)setChannelMetadataWithRequest:(PNSetChannelMetadataRequest *)request
completion:(nullable PNSetChannelMetadataCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNSetChannelMetadataRequest | Yes | Set channel metadata request with all information which should be associated with channel . |
block | PNSetChannelMetadataCompletionBlock | No | Set channel metadata request completion block . |
PNSetChannelMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
custom | NSDictionary | No | Additional / complex attributes which should be stored in metadata associated with specified channel. App Context filtering language doesn’t support filtering by custom properties. |
information | NSString | No | Description which should be stored in metadata associated with specified channel. |
includeFields | PNChannelFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelCustomField ) can be reset by setting 0. |
name | NSString | No | Name which should be stored in metadata associated with specified channel. |
channel | NSString | No | Create and configure set channel metadata request. channel - Name of channel for which metadata should be set. |
API limits
To learn about the maximum length of parameters used to set channel metadata, refer to REST API docs.
Basic Usage
PNSetChannelMetadataRequest *request = [PNSetChannelMetadataRequest requestWithChannel:@"channel"];
// Add this request option, if returned metadata model should have value which has been set to
// 'custom' property.
request.includeFields = PNChannelCustomField;
request.custom = @{ @"responsibilities": @"Manage tests", @"status": @"offline" };
request.name = @"Updated channel name";
[self.client setChannelMetadataWithRequest:request completion:^(PNSetChannelMetadataStatus *status) {
if (!status.isError) {
/**
* Channel metadata successfully has been set.
* Channel metadata information available here: status.data.metadata
*/
} else {
/**
show all 22 linesResponse
Response objects which is returned by client when set channel metadata
Object API is used:
@interface PNSetChannelMetadataData : PNServiceData
// Associated channel's metadata object.
@property (nonatomic, nullable, readonly, strong) PNChannelMetadata *metadata;
@end
@interface PNSetChannelMetadataStatus : PNAcknowledgmentStatus
// Set channel metadata request processed information.
@property (nonatomic, readonly, strong) PNSetChannelMetadataData *data;
@end
Set Channel Metadata (Builder Pattern)
Method(s)
objects()
.setChannelMetadata(NSString *)
.includeFields(PNChannelFields)
.channel(NSString)
.name(NSString)
.information(NSString)
.custom(NSDictionary)
.performWithCompletion(nullable PNFetchChannelMetadataCompletionBlock);
API limits
To learn about the maximum length of parameters used to set channel metadata, refer to REST API docs.
Parameter | Type | Required | Description |
---|---|---|---|
channel | NSString | Yes | Name of channel with which new metadata should be associated. |
name | NSString | No | Name which should stored in metadata associated with specified channel . |
information | NSString | No | Description which should be stored in metadata associated with specified channel . |
custom | NSDictionary | No | Additional information which should be stored in metadata associated with specified channel . App Context filtering language doesn’t support filtering by custom properties. |
includeFields | PNChannelFields | No | PNChannelCustomField - include field with additional information from metadata which has been used during channel metadata set requests. Default: PNChannelCustomField Default value can be reset by setting 0. |
block | PNSetChannelMetadataCompletionBlock | No | Set channel metadata request completion block . |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().setChannelMetadata(@"channel")
.name(@"Admin")
.information(@"Administrative channel")
.custom(@{ @"responsibilities": @"Manage access to protected resources" })
.includeFields(PNChannelCustomField)
.performWithCompletion(^(PNSetChannelMetadataStatus *status) {
if (!status.isError) {
/**
* Channel metadata successfully has been set.
* Channel metadata information available here: status.data.metadata
*/
} else {
/**
* Handle channel metadata update error. Check 'category' property to find out possible
* issue because of which request did fail.
show all 20 linesResponse
Response objects which is returned by client when set channel metadata
Object API is used:
@interface PNSetChannelMetadataData : PNServiceData
// Associated channel's metadata object.
@property (nonatomic, nullable, readonly, strong) PNChannelMetadata *metadata;
@end
@interface PNSetChannelMetadataStatus : PNAcknowledgmentStatus
// Set channel metadata request processed information.
@property (nonatomic, readonly, strong) PNSetChannelMetadataData *data;
@end
Remove Channel Metadata
Removes the metadata from a specified channel.
Method(s)
To Remove Channel Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)removeChannelMetadataWithRequest:(PNRemoveChannelMetadataRequest *)request
completion:(nullable PNRemoveChannelMetadataCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNRemoveChannelMetadataRequest | Yes | Remove channel metadata request with information about existing metadata. |
block | PNRemoveChannelMetadataCompletionBlock | No | Remove channel metadata request completion block . |
PNRemoveChannelMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
channel | NSString | No | Create and configure remove channel metadata request. channel - Name of channel for which metadata should be removed. |
Basic Usage
PNRemoveChannelMetadataRequest *request = [PNRemoveChannelMetadataRequest requestWithChannel:@"channel"];
[self.client removeChannelMetadataWithRequest:request completion:^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// Channel metadata successfully removed.
} else {
/**
* Handle channel metadata remove error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when remove channel metadata
Object API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesRemove Channel Metadata (Builder Pattern)
Method(s)
objects()
.removeChannelMetadata(NSString *)
.performWithCompletion(nullable PNRemoveChannelMetadataCompletionBlock);
Parameter | Type | Required | Description |
---|---|---|---|
channel | NSString | Yes | Name of channel for which associated metadata should be removed. |
block | PNRemoveChannelMetadataCompletionBlock | No | Remove channel metadata request completion block . |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().removeChannelMetadata(@"channel")
.performWithCompletion(^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// Channel metadata successfully removed.
} else {
/**
* Handle channel metadata remove error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when remove channel metadata
Object API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesChannel Memberships
Get Channel Memberships
The method returns a list of channel memberships for a user. This method doesn't return a user's subscriptions.
Method(s)
To Get Memberships
you can use the following method(s) in the Cocoa SDK:
- (void)membershipsWithRequest:(PNFetchMembershipsRequest *)request
completion:(PNFetchMembershipsCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNFetchMembershipsRequest | Yes | Fetch UUID's memberships request with all information which should be used to fetch existing UUID's memberships . |
block | PNFetchMembershipsCompletionBlock | Yes | Fetch UUID's memberships request completion block . |
PNFetchMembershipsRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction. |
includeFields | NSArray<NSString *> | No | Bitfield set to fields which should be returned with response. Supported fields:
PNMembershipsTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit | NSUInteger | No | Number of members to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
PNFetchMembershipsRequest *request = [PNFetchMembershipsRequest requestWithUUID:@"uuid"];
request.start = @"<next from previous request>";
// Add this request option, if returned membership models should have value which has been set to
// 'custom' and 'channel' properties.
request.includeFields = PNMembershipCustomField | PNMembershipChannelField | PNMembershipsTotalCountField;
request.limit = 40;
[self.client membershipsWithRequest:request
completion:^(PNFetchMembershipsResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully fetched.
* Result object has following information:
* result.data.memberships - List of UUID's memberships.
show all 28 linesResponse
Response objects which is returned by client when fetch memberships
Object API is used:
@interface PNFetchMembershipsData : PNServiceData
// List of fetched memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of members created for current subscribe key.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
show all 28 linesError response which is used in case of App Context API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesGet Channel Memberships (Builder Pattern)
Method(s)
objects()
.memberships()
.uuid(NSString *)
.includeFields(PNMembershipFields)
.includeCount(BOOL)
.filter(NSString *)
.sort(NSArray<NSString *> *)
.limit(NSUInteger)
.start(NSString *)
.end(NSString *)
.performWithCompletion(PNFetchMembershipsCompletionBlock);
Parameter | Type | Required | Description |
---|---|---|---|
uuid | NSString | No | Name of channel from which members should be fetched. |
includeFields | PNMembershipFields | No |
|
includeCount | BOOL | No | Whether total count of objects should be included in response or not. Default: YES |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
sort | NSArray | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
limit | NSUInteger | No | Maximum number of objects per fetched page. Default: 100 (which is also maximum value) |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
block | PNFetchMembershipsCompletionBlock | Yes | Fetch UUID's memberships request completion block . |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().memberships()
.uuid(@"uuid")
.includeCount(YES)
.limit(40)
.includeFields(PNMembershipCustomField | PNMembershipChannelField)
.performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully fetched.
* Result object has following information:
* result.data.memberships - List of UUID's memberships.
* result.data.next - Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
* result.data.prev - Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
* result.data.totalCount - Total number of UUID's memberships.
*/
show all 24 linesResponse
Response objects which is returned by client when fetch memberships
Object API is used:
@interface PNFetchMembershipsData : PNServiceData
// List of fetched memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of members created for current subscribe key.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
show all 28 linesError response which is used in case of App Context API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesSet Channel Memberships
Set channel memberships for a UUID.
Method(s)
To Set Memberships
you can use the following method(s) in the Cocoa SDK:
- (void)setMembershipsWithRequest:(PNSetMembershipsRequest *)request
completion:(nullable PNManageMembershipsCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNSetMembershipsRequest | Yes | Set UUID's memberships request with information which should be used to set channels membership. |
block | PNManageMembershipsCompletionBlock | No | Set UUID's memberships request completion block . |
PNSetMembershipsRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction. |
includeFields | PNMembershipFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNMembershipsTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
API limits
To learn about the maximum length of parameters used to set channel membership metadata, refer to REST API docs.
Basic Usage
NSArray<NSDictionary *> *channels = @[
@{ @"channel": @"channel1", @"custom": @{ @"role": @"moderator" } }
];
PNSetMembershipsRequest *request = [PNSetMembershipsRequest requestWithUUID:@"uuid"
channels:channels];
// Add this request option, if returned membership models should have value which has been set to
// 'custom' and 'channel' properties.
request.includeFields = PNMembershipCustomField | PNMembershipChannelField | PNMembershipsTotalCountField;
request.limit = 40;
[self.client setMembershipsWithRequest:request completion:^(PNManageMembershipsStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully set.
show all 30 linesResponse
Response objects which is returned by client when set memberships
Object API is used:
@interface PNManageMembershipsData : PNServiceData
// List of existing memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
show all 28 linesSet Channel Memberships (Builder Pattern)
Method(s)
objects()
.setMemberships()
.uuid(NSString *)
.channels(NSArray<NSDictionary *> *)
.includeFields(PNMembershipFields)
.includeCount(BOOL)
.filter(NSString *)
.sort(NSArray<NSString *> *)
.limit(NSUInteger)
.start(NSString *)
.end(NSString *)
.performWithCompletion(nullable PNManageMembershipsCompletionBlock);
API limits
To learn about the maximum length of parameters used to set channel membership metadata, refer to REST API docs.
Parameter | Type | Required | Description |
---|---|---|---|
uuid | NSString | No | Identifier for which memberships should be set. Default: configured PubNub client uuid |
channels | NSArray | No | List of channels for which metadata associated with each of them in context of UUID should be set. Each entry is dictionary with channel and optional custom fields. custom should be dictionary with simple objects: NSString and NSNumber . |
includeFields | PNMembershipFields | No |
|
includeCount | BOOL | No | Whether total count of objects should be included in response or not. Default: YES |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
sort | NSArray | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
limit | NSUInteger | No | Maximum number of objects per fetched page. Default: 100 (which is also maximum value) |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
block | PNManageMembershipsCompletionBlock | No | Set UUID's memberships request completion block . |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
NSArray<NSDictionary *> *channels = @[
@{ @"channel": @"channel1", @"custom": @{ @"role": @"moderator" } }
];
self.client.objects().setMemberships()
.uuid(@"uuid")
.channels(channels)
.includeCount(YES)
.limit(40)
.includeFields(NMembershipCustomField | PNMembershipChannelField)
.performWithCompletion(^(PNManageMembershipsStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully set.
* Result object has following information:
show all 29 linesResponse
Response objects which is returned by client when set memberships
Object API is used:
@interface PNManageMembershipsData : PNServiceData
// List of existing memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
show all 28 linesRemove Channel Memberships
Remove channel memberships for a UUID.
Method(s)
To Remove Memberships
you can use the following method(s) in the Cocoa SDK:
- (void)removeMembershipsWithRequest:(PNRemoveMembershipsRequest *)request
completion:(nullable PNManageMembershipsCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNRemoveMembershipsRequest | Yes | Remove UUID's memberships request with information which should be used to remove channels membership. |
block | PNManageMembershipsCompletionBlock | No | Remove UUID's memberships request completion block. |
PNRemoveMembershipsRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction. |
includeFields | PNMembershipFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNMembershipsTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
NSArray<NSString *> *channels = @[@"channel1", @"channel2"];
PNRemoveMembershipsRequest *request = [PNRemoveMembershipsRequest requestWithUUID:@"uuid"
channels:channels];
// Add this request option, if returned membership models should have value which has been set to
// 'custom' and 'channel' properties.
request.includeFields = PNMembershipCustomField | PNMembershipChannelField | PNMembershipsTotalCountField;
request.limit = 40;
[self.client removeMembershipsWithRequest:request
completion:^(PNManageMembershipsStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully removed.
* Result object has following information:
show all 29 linesResponse
Response objects which is returned by client when remove memberships
Object API is used:
@interface PNManageMembershipsData : PNServiceData
// List of existing memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
show all 28 linesRemove Channel Memberships (Builder Pattern)
Method(s)
objects()
.removeMemberships()
.uuid(NSString *)
.channels(NSArray<NSString *> *)
.includeFields(PNMemberFields)
.includeCount(BOOL)
.filter(NSString *)
.sort(NSArray<NSString *> *)
.limit(NSUInteger)
.start(NSString *)
.end(NSString *)
.performWithCompletion(nullable PNManageMembershipsCompletionBlock);
Parameter | Type | Required | Description |
---|---|---|---|
uuid | NSString | No | Identifier for which memberships should be removed. Default: configured PubNub client uuid |
channels | NSArray | No | List of channels from which UUID should be removed as member . |
includeFields | PNMembershipFields | No |
|
includeCount | BOOL | No | Whether total count of members should be included in response or not. Default: YES |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
sort | NSArray | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
limit | NSUInteger | No | Maximum number of objects per fetched page. Default: 100 (which is also maximum value) |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
block | PNManageMembershipsCompletionBlock | No | Remove UUID's memberships request completion block. |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().removeMemberships()
.uuid(@"uuid")
.channels(@[@"channel1", @"channel2"])
.includeCount(YES)
.limit(40)
.includeFields(PNMembershipCustomField | PNMembershipChannelField)
.performWithCompletion(^(PNManageMembershipsStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully removed.
* Result object has following information:
* status.data.memberships - List of UUID's existing memberships.
* status.data.next - Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
* status.data.prev - Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
* status.data.totalCount - Total number of UUID's memberships.
show all 25 linesResponse
Response objects which is returned by client when remove memberships
Object API is used:
@interface PNManageMembershipsData : PNServiceData
// List of existing memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
show all 28 linesManage Channel Memberships
The method Set and Remove channel memberships for a user.
Method(s)
To Manage Memberships
you can use the following method(s) in the Cocoa SDK:
- (void)manageMembershipsWithRequest:(PNManageMembershipsRequest *)request
completion:(nullable PNManageMembershipsCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNManageMembershipsRequest | Yes | Manage UUID's memberships request with information what modifications to UUID's memberships should be done (set / remove channels ). |
block | PNManageMembershipsCompletionBlock | No | Manage UUID's memberships request completion block . |
PNManageMembershipsRequest
Parameter | Type | Required | Description |
---|---|---|---|
setChannels | NSArray<NSDictionary *> | No | List of channels within which UUID should be set as member. Each entry is dictionary with channel and optional custom fields. custom should be dictionary with simple objects: NSString and NSNumber. |
removeChannels | NSArray<NSString *> | No | List of channels from which UUID should be removed as member. |
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
includeFields | PNMembershipFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNMembershipsTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
PNManageMembershipsRequest *request = [PNManageMembershipsRequest requestWithUUID:@"uuid"];
request.setChannels = @[
@{ @"channel": @"channel1", @"custom": @{ @"role": @"moderator" } }
];
request.removeChannels = @[@"channel3", @"channel4"];
// Add this request option, if returned membership models should have value which has been set to
// 'custom' and 'channel' properties.
request.includeFields = PNMembershipCustomField | PNMembershipChannelField | PNMembershipsTotalCountField;
request.limit = 40;
[self.client manageMembershipsWithRequest:request
completion:^(PNManageMembershipsStatus *status) {
if (!status.isError) {
/**
show all 31 linesResponse
Response objects which is returned by client when manage memberships
Object API is used:
@interface PNManageMembershipsData : PNServiceData
// List of existing memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
show all 28 linesManage Channel Memberships (Builder Pattern)
Method(s)
objects()
.manageMemberships()
.uuid(NSString *)
.set(NSArray<NSDictionary *> *)
.remove(NSArray<NSString *> *)
.includeFields(PNMemberFields)
.includeCount(BOOL)
.filter(NSString *)
.sort(NSArray<NSString *> *)
.limit(NSUInteger)
.start(NSString *)
.end(NSString *)
.performWithCompletion(nullable PNManageMembershipsCompletionBlock);
Parameter | Type | Required | Description |
---|---|---|---|
uuid | NSString | No | Identifier for which memberships should be set. Default: configured PubNub client uuid |
set | NSArray | No | List of channels for which metadata associated with each of them in context of UUID should be set. Each entry is dictionary with channel and optional custom fields. custom should be dictionary with simple objects: NSString and NSNumber . |
remove | NSArray | No | List of channels from which UUID should be removed as member . |
includeFields | PNMembershipFields | No |
|
includeCount | BOOL | No | Whether total count of objects should be included in response or not. Default: YES |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
sort | NSArray | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
limit | NSUInteger | No | Maximum number of objects per fetched page. Default: 100 (which is also maximum value) |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
block | PNManageMembershipsCompletionBlock | No | Manage UUID's memberships request completion block . |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
NSArray<NSDictionary *> *setChannels = @[
@{ @"channel": @"channel1", @"custom": @{ @"role": @"moderator" } }
];
NSArray<NSString *> *removeChannels = @[@"channel3", @"channel4"];
self.client.objects().manageMemberships()
.uuid(@"uuid")
.set(setChannels)
.remove(removeChannels)
.includeCount(YES)
.limit(40)
.includeFields(PNMembershipCustomField | PNMembershipChannelField)
.performWithCompletion(^(PNManageMembershipsStatus *status) {
if (!status.isError) {
/**
show all 31 linesResponse
Response objects which is returned by client when manage memberships
Object API is used:
@interface PNManageMembershipsData : PNServiceData
// List of existing memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
show all 28 linesChannel Members
Get Channel Members
The method returns a list of members in a channel. The list will include user metadata for members that have additional metadata stored in the database.
Method(s)
To Get Channel Members
you can use the following method(s) in the Cocoa SDK:
- (void)channelMembersWithRequest:(PNFetchChannelMembersRequest *)request
completion:(PNFetchChannelMembersCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNFetchChannelMembersRequest | Yes | Fetch channel's members request with all information which should be used to fetch existing channel's members . |
block | PNFetchChannelMembersCompletionBlock | Yes | Fetch channel's members request completion block. |
PNFetchChannelMembersRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction. |
includeFields | PNChannelMemberFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelMembersTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit | NSUInteger | No | Number of members to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
PNFetchChannelMembersRequest *request = [PNFetchChannelMembersRequest requestWithChannel:@"channel"];
request.start = @"<next from previous request>";
// Add this request option, if returned member models should have value which has been set to
// 'custom' and 'uuid' properties.
request.includeFields = PNChannelMemberCustomField | PNChannelMemberUUIDField | PNChannelMembersTotalCountField;
request.limit = 40;
[self.client channelMembersWithRequest:request
completion:^(PNFetchChannelMembersResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully fetched.
* Result object has following information:
* result.data.members - List of channel's members.
show all 28 linesResponse
Response objects which is returned by client when fetch members
Object API is used:
@interface PNFetchChannelMembersData : PNServiceData
// List of fetched members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of members created for current subscribe key.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
show all 28 linesError response which is used in case of App Context API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesGet Channel Members (Builder Pattern)
Method(s)
objects()
.channelMembers(NSString *)
.includeFields(PNChannelMemberFields)
.includeCount(BOOL)
.filter(NSString *)
.sort(NSArray<NSString *> *)
.limit(NSUInteger)
.start(NSString *)
.end(NSString *)
.performWithCompletion(PNFetchChannelMembersCompletionBlock);
Parameter | Type | Required | Description |
---|---|---|---|
channel | NSString | Yes | Name of channel from which members should be fetched. |
includeFields | PNChannelMemberFields | No |
|
includeCount | BOOL | No | Whether total count of objects should be included in response or not. Default: YES |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
sort | NSArray | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
limit | NSUInteger | No | Maximum number of objects per fetched page. Default: 100 (which is also maximum value) |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
block | PNFetchChannelMembersCompletionBlock | Yes | Fetch channel's members request completion block. |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().channelMembers(@"channel")
.includeCount(YES)
.limit(40)
.includeFields(PNChannelMemberCustomField | PNChannelMemberUUIDField)
.performWithCompletion(^(PNFetchChannelMembersResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully fetched.
* Result object has following information:
* result.data.members - List of channel's members.
* result.data.next - Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
* result.data.prev - Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
* result.data.totalCount - Total number of channel's members.
*/
} else {
show all 23 linesResponse
Response objects which is returned by client when fetch members
Object API is used:
@interface PNFetchChannelMembersData : PNServiceData
// List of fetched members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of members created for current subscribe key.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
show all 28 linesError response which is used in case of App Context API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
show all 16 linesSet Channel Members
This method sets members in a channel.
Method(s)
To Set Channel Members
you can use the following method(s) in the Cocoa SDK:
- (void)setChannelMembersWithRequest:(PNSetChannelMembersRequest *)request
completion:(nullable PNManageChannelMembersCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNSetChannelMembersRequest | Yes | Set channel's members list request with information which should be used to set UUID member. |
block | PNManageChannelMembersCompletionBlock | No | Set channel's members list request completion block . |
PNSetMembersRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction. |
includeFields | PNChannelMemberFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelMembersTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
API limits
To learn about the maximum length of parameters used to set channel members metadata, refer to REST API docs.
Basic Usage
NSArray>NSDictionary *> *uuids = @[
@{ @"uuid": @"uuid2", @"custom": @{ @"role": @"moderator" } }
];
PNSetChannelMembersRequest *request = [PNSetChannelMembersRequest requestWithChannel:@"channel" uuids:uuids];
// Add this request option, if returned member models should have value which has been set to
// 'custom' and 'uuid' properties.
request.includeFields = PNChannelMemberCustomField | PNChannelMemberUUIDField | PNChannelMembersTotalCountField;
request.limit = 40;
[self.client setChannelMembersWithRequest:request completion:^(PNManageChannelMembersStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully set.
* Result object has following information:
show all 29 linesResponse
Response objects which is returned by client when set members
Object API is used:
@interface PNManageChannelMembersData : PNServiceData
// List of existing members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
show all 28 linesSet Channel Members (Builder Pattern)
Method(s)
objects()
.setChannelMembers(NSString *)
.uuids(NSArray<NSDictionary *> *)
.includeFields(PNChannelMemberFields)
.includeCount(BOOL)
.filter(NSString *)
.sort(NSArray<NSString *> *)
.limit(NSUInteger)
.start(NSString *)
.end(NSString *)
.performWithCompletion(nullable PNManageChannelMembersCompletionBlock);
API limits
To learn about the maximum length of parameters used to set channel members metadata, refer to REST API docs.
Parameter | Type | Required | Description |
---|---|---|---|
channel | NSString | Yes | Name of channel from which members should be set. |
uuids | NSArray | No | List of UUIDs for which metadata associated with each of them in context of channel should be set. Each entry is dictionary with UUID and optional custom fields. custom should be dictionary with simple objects: NSString and NSNumber . |
includeFields | PNChannelMemberFields | No |
|
includeCount | BOOL | No | Whether total count of objects should be included in response or not. Default: YES |
filter | NSString | No | Expression to filter out results basing on specified criteria. Only objects whose properties satisfy the given expression are returned. For more details on the supported grammar, check this |
sort | NSArray | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
limit | NSUInteger | No | Maximum number of objects per fetched page. Default: 100 (which is also maximum value) |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
block | PNManageChannelMembersCompletionBlock | No | Set channel's members list request completion block . |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
NSArray<NSDictionary *> *uuids = @[
@{ @"uuid": @"uuid2", @"custom": @{ @"role": @"moderator" } }
];
self.client.objects().setChannelMembers(@"channel")
.uuids(uuids)
.includeCount(YES)
.limit(40)
.includeFields(PNChannelMemberCustomField | PNChannelMemberUserField)
.performWithCompletion(^(PNManageChannelMembersStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully set.
* Result object has following information:
* result.data.members - List of existing channel's members.
show all 28 linesResponse
Response objects which is returned by client when set members
Object API is used:
@interface PNManageChannelMembersData : PNServiceData
// List of existing members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
show all 28 linesRemove Channel Members
Remove members from a Channel.
Method(s)
To Remove Channel Members
you can use the following method(s) in the Cocoa SDK:
- (void)removeChannelMembersWithRequest:(PNRemoveChannelMembersRequest *)request
completion:(nullable PNManageChannelMembersCompletionBlock)
Parameter | Type | Required | Description |
---|---|---|---|
request | PNRemoveChannelMembersRequest | Yes | Remove channel's members request with information which should be used to remove UUID members. |
block | PNManageChannelMembersCompletionBlock | No | Remove channel's members request completion block . |
PNRemoveChannelMembersRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction. |
includeFields | PNChannelMemberFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelMembersTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
NSArray<NSString *> *uuids = @[@"uuid3", @"uuid4"];
PNRemoveChannelMembersRequest *request = [PNRemoveChannelMembersRequest requestWithChannel:@"channel"
uuids:uuids];
// Add this request option, if returned member models should have value which has been set to
// 'custom' and 'uuid' properties.
request.includeFields = PNChannelMemberCustomField | PNChannelMemberUUIDField | PNChannelMembersTotalCountField;
request.limit = 40;
[self.client removeChannelMembersWithRequest:request completion:^(PNManageChannelMembersStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully removed.
* Result object has following information:
* result.data.members - List of channel's existing members.
* result.data.next - Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
show all 27 linesResponse
Response objects which is returned by client when remove members
Object API is used:
@interface PNManageChannelMembersData : PNServiceData
// List of existing members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
show all 28 linesRemove Channel Members (Builder Pattern)
Method(s)
objects()
.removeChannelMembers(NSString *)
.uuids(NSArray<NSString *> *)
.includeFields(PNChannelMemberFields)
.includeCount(BOOL)
.filter(NSString *)
.sort(NSArray<NSString *> *)
.limit(NSUInteger)
.start(NSString *)
.end(NSString *)
.performWithCompletion(nullable PNManageChannelMembersCompletionBlock);
Parameter | Type | Required | Description |
---|---|---|---|
channel | NSString | Yes | Name of channel from which members should be removed. |
uuids | NSArray | No | List of UUIDs which should be removed from channel's list. |
includeFields | PNChannelMemberFields | No |
|
includeCount | BOOL | No | Whether total count of members should be included in response or not. Default: YES |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
sort | NSArray | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
limit | NSUInteger | No | Maximum number of objects per fetched page. Default: 100 (which is also maximum value) |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
block | PNManageChannelMembersCompletionBlock | No | Remove channel's members request completion block . |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().removeChannelMembers(@"channel")
.uuids(@[@"uuid3", @"uuid4"])
.includeCount(YES)
.limit(40)
.includeFields(PNChannelMemberCustomField | PNChannelMemberUserField)
.performWithCompletion(^(PNManageChannelMembersStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully removed.
* Result object has following information:
* result.data.members - List of channel's existing members.
* result.data.next - Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
* result.data.prev - Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
* result.data.totalCount - Total number of channel's members.
*/
show all 24 linesResponse
Response objects which is returned by client when remove members
Object API is used:
@interface PNManageChannelMembersData : PNServiceData
// List of existing members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
show all 28 linesManage Channel Members
The method Set and Remove channel memberships for a user.
Method(s)
To Manage Channel Members
you can use the following method(s) in the Cocoa SDK:
- (void)manageChannelMembersWithRequest:(PNManageChannelMembersRequest *)request
completion:(nullable PNManageChannelMembersCompletionBlock)block;
Parameter | Type | Required | Description |
---|---|---|---|
request | PNManageChannelMembersRequest | Yes | Manage channel's members list request with information what modifications to channel's members list should be done (set / remove UUID ). |
block | PNManageChannelMembersCompletionBlock | No | Manage channel's members list request completion block . |
PNManageChannelMembersRequest
Parameter | Type | Required | Description |
---|---|---|---|
setMembers | NSArray<NSDictionary *> | No | List of UUIDs which should be added to channel's members list. Each entry is dictionary with uuid and optional custom fields. custom should be dictionary with simple objects: NSString and NSNumber. |
removeMembers | NSArray<NSString *> | No | BList of UUIDs which should be removed from channel's list. |
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
includeFields | PNChannelMemberFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelMembersTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
PNManageChannelMembersRequest *request = [PNManageChannelMembersRequest requestWithChannel:@"channel"];
request.setMembers = @[
@{ @"uuid": @"uuid2", @"custom": @{ @"role": @"moderator" } }
];
request.removeMembers = @[@"uuid3", @"uuid4"];
// Add this request option, if returned member models should have value which has been set to
// 'custom' and 'uuid' properties.
request.includeFields = PNChannelMemberCustomField | PNChannelMemberUUIDField | PNChannelMembersTotalCountField;
request.limit = 40;
[self.client manageChannelMembersWithRequest:request completion:^(PNManageChannelMembersStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully changed.
* Result object has following information:
show all 29 linesResponse
Response objects which is returned by client when manage members
Object API is used:
@interface PNManageChannelMembersData : PNServiceData
// List of existing members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
show all 28 linesManage Channel Members (Builder Pattern)
Method(s)
objects()
.manageChannelMembers(NSString *)
.set(NSArray<NSDictionary *> *)
.remove(NSArray<NSString *> *)
.includeFields(PNChannelMemberFields)
.includeCount(BOOL)
.filter(NSString *)
.sort(NSArray<NSString *> *)
.limit(NSUInteger)
.start(NSString *)
.end(NSString *)
.performWithCompletion(nullable PNManageChannelMembersCompletionBlock);
Parameter | Type | Required | Description |
---|---|---|---|
channel | NSString | Yes | Name of channel from which members should be managed. |
set | NSArray | No | List of UUIDs which should be added to channel's members list. Each entry is dictionary with UUID and optional custom fields. custom should be dictionary with simple objects: NSString and NSNumber . |
remove | NSArray | No | List of UUIDs which should be removed from channel's list. |
includeFields | PNChannelMemberFields | No |
|
includeCount | BOOL | No | Whether total count of objects should be included in response or not. Default: YES |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check App Context Filtering Language Definition. |
sort | NSArray | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
limit | NSUInteger | No | Maximum number of objects per fetched page. Default: 100 (which is also maximum value) |
start | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off. |
end | NSString | No | Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data. Ignored if the start parameter is supplied. |
block | PNManageChannelMembersCompletionBlock | No | Set channel's members list request completion block . |
Optional arguments
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
NSArray<NSDictionary *> *setMembers = @[
@{ @"uuid": @"uuid2", @"custom": @{ @"role": @"moderator" } }
];
NSArray<NSDictionary *> *removeMembers = @[@"uuid3", @"uuid4"];
self.client.objects().manageChannelMembers(@"channel")
.set(setMembers)
.remove(removeMembers)
.includeCount(YES)
.limit(40)
.includeFields(PNChannelMemberCustomField | PNChannelMemberUUIDField)
.performWithCompletion(^(PNManageChannelMembersStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully changed.
show all 30 linesResponse
Response objects which is returned by client when manage members
Object API is used:
@interface PNManageChannelMembersData : PNServiceData
// List of existing members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Random string returned from the server, indicating a specific position in a data set. Used for forward pagination, it fetches the next page, allowing you to continue from where you left off.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Random string returned from the server, indicating a specific position in a data set. Used for backward pagination, it fetches the previous page, enabling access to earlier data.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
show all 28 lines