Skip to content

Commit c8ae89e

Browse files
authored
Added membershipType to Memberships and ChannelMembers APIs
Introduced new API with userId instead of UUID and possibility to include optional data in respons. See MemberInclude and MembershipInclude.
1 parent 51da946 commit c8ae89e

File tree

86 files changed

+3184
-388
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+3184
-388
lines changed

.pubnub.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ changelog:
123123
version: v10.2.0
124124
changes:
125125
- type: feature
126-
text: "Publish, signal, share file, subscribe, and history."
126+
text: "Added custom messageType for publish, signal, file, subscribe and history."
127127
- date: 2024-11-06
128128
version: v10.1.0
129129
changes:

CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ December 03 2024
88
November 18 2024
99

1010
#### Added
11-
- Publish, signal, share file, subscribe, and history.
11+
- Added customMessageType to publish, signal, file, subscribe and history.
1212

1313
## v10.1.0
1414
November 06 2024

pubnub-gson/pubnub-gson-api/src/main/java/com/pubnub/api/java/PubNub.kt

+78-2
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,20 @@ import com.pubnub.api.java.endpoints.objects_api.channel.GetChannelMetadata
3232
import com.pubnub.api.java.endpoints.objects_api.channel.RemoveChannelMetadata
3333
import com.pubnub.api.java.endpoints.objects_api.channel.SetChannelMetadata
3434
import com.pubnub.api.java.endpoints.objects_api.members.GetChannelMembers
35+
import com.pubnub.api.java.endpoints.objects_api.members.GetChannelMembersBuilder
3536
import com.pubnub.api.java.endpoints.objects_api.members.ManageChannelMembers
37+
import com.pubnub.api.java.endpoints.objects_api.members.ManageChannelMembersBuilder
3638
import com.pubnub.api.java.endpoints.objects_api.members.RemoveChannelMembers
39+
import com.pubnub.api.java.endpoints.objects_api.members.RemoveChannelMembersBuilder
3740
import com.pubnub.api.java.endpoints.objects_api.members.SetChannelMembers
41+
import com.pubnub.api.java.endpoints.objects_api.members.SetChannelMembersBuilder
3842
import com.pubnub.api.java.endpoints.objects_api.memberships.GetMemberships
3943
import com.pubnub.api.java.endpoints.objects_api.memberships.ManageMemberships
44+
import com.pubnub.api.java.endpoints.objects_api.memberships.ManageMembershipsBuilder
4045
import com.pubnub.api.java.endpoints.objects_api.memberships.RemoveMemberships
46+
import com.pubnub.api.java.endpoints.objects_api.memberships.RemoveMembershipsBuilder
4147
import com.pubnub.api.java.endpoints.objects_api.memberships.SetMemberships
48+
import com.pubnub.api.java.endpoints.objects_api.memberships.SetMembershipsBuilder
4249
import com.pubnub.api.java.endpoints.objects_api.uuid.GetAllUUIDMetadata
4350
import com.pubnub.api.java.endpoints.objects_api.uuid.GetUUIDMetadata
4451
import com.pubnub.api.java.endpoints.objects_api.uuid.RemoveUUIDMetadata
@@ -53,6 +60,8 @@ import com.pubnub.api.java.endpoints.push.AddChannelsToPush
5360
import com.pubnub.api.java.endpoints.push.ListPushProvisions
5461
import com.pubnub.api.java.endpoints.push.RemoveAllPushChannelsForDevice
5562
import com.pubnub.api.java.endpoints.push.RemoveChannelsFromPush
63+
import com.pubnub.api.java.models.consumer.objects_api.member.PNUser
64+
import com.pubnub.api.java.models.consumer.objects_api.membership.PNChannelMembership
5665
import com.pubnub.api.java.v2.PNConfiguration
5766
import com.pubnub.api.java.v2.callbacks.EventEmitter
5867
import com.pubnub.api.java.v2.callbacks.StatusEmitter
@@ -468,39 +477,106 @@ interface PubNub : EventEmitter, StatusEmitter {
468477
/**
469478
* Set channel memberships for a UUID.
470479
*/
471-
fun setMemberships(): SetMemberships.Builder
480+
@Deprecated(
481+
message = "Use setMemberships(Collection<PNChannelMembership>) instead.",
482+
replaceWith = ReplaceWith("setMemberships(channelMemberships)")
483+
)
484+
fun setMemberships(): SetMemberships.Builder // add deprecation
485+
486+
/**
487+
* Set channel memberships for a User.
488+
*/
489+
fun setMemberships(channelMemberships: Collection<PNChannelMembership>): SetMembershipsBuilder
472490

473491
/**
474492
* Remove channel memberships for a UUID.
475493
*/
494+
@Deprecated(
495+
message = "Use removeMemberships(Collection<PNChannelMembership>) instead.",
496+
replaceWith = ReplaceWith("removeMemberships(channelMemberships)")
497+
)
476498
fun removeMemberships(): RemoveMemberships.Builder
477499

478500
/**
479-
* Add and remove channel memberships for a UUID.
501+
* Remove channel memberships for a UUID.
502+
*/
503+
fun removeMemberships(channelMemberships: Collection<String>): RemoveMembershipsBuilder
504+
505+
/**
506+
* Add and/or remove channel memberships for a UUID.
480507
*/
508+
@Deprecated(
509+
message = "Use manageMemberships(Collection<PNChannelMembership>, Collection<PNChannelMembership>) instead.",
510+
replaceWith = ReplaceWith("manageMemberships(channelMembershipsToAdd, channelMembershipsToRemove)")
511+
)
481512
fun manageMemberships(): ManageMemberships.Builder
482513

514+
/**
515+
* Add and/or remove channel memberships for a UUID.
516+
*/
517+
fun manageMemberships(
518+
channelsToSet: Collection<PNChannelMembership>,
519+
channelsToDelete: Collection<String>
520+
): ManageMembershipsBuilder
521+
483522
/**
484523
* The method returns a list of members in a channel. The list will include user metadata for members
485524
* that have additional metadata stored in the database.
486525
*/
526+
@Deprecated(
527+
message = "Use getChannelMembers(String) instead.",
528+
replaceWith = ReplaceWith("getChannelMembers(channelId)")
529+
)
487530
fun getChannelMembers(): GetChannelMembers.Builder
488531

532+
/**
533+
* The method returns a list of members in a channel. The list will include user metadata for members
534+
* that have additional metadata stored in the database.
535+
*/
536+
fun getChannelMembers(channelId: String): GetChannelMembersBuilder
537+
489538
/**
490539
* This method sets members in a channel.
491540
*/
541+
@Deprecated(
542+
message = "Use setChannelMembers(String, Collection<PNUUID>) instead.",
543+
replaceWith = ReplaceWith("setChannelMembers(channelId, channelMembers)")
544+
)
492545
fun setChannelMembers(): SetChannelMembers.Builder
493546

547+
/**
548+
* This method sets members in a channel.
549+
*/
550+
fun setChannelMembers(channelId: String, channelMembers: Collection<PNUser>): SetChannelMembersBuilder
551+
494552
/**
495553
* Remove members from a Channel.
496554
*/
555+
@Deprecated(
556+
message = "Use removeChannelMembers(String, Collection<PNUUID>) instead.",
557+
replaceWith = ReplaceWith("removeChannelMembers(channelId, channelMembers)")
558+
)
497559
fun removeChannelMembers(): RemoveChannelMembers.Builder
498560

561+
/**
562+
* Remove members from a Channel.
563+
*/
564+
fun removeChannelMembers(channelId: String, channelMembers: Collection<String>): RemoveChannelMembersBuilder
565+
499566
/**
500567
* Set or remove members in a channel.
501568
*/
569+
@Deprecated(
570+
message = "Use manageChannelMembers(String, Collection<PNUUID>, Collection<PNUUID>) instead.",
571+
replaceWith = ReplaceWith("manageChannelMembers(channelId, channelMembersToSet, channelMembersToRemove)")
572+
)
502573
fun manageChannelMembers(): ManageChannelMembers.Builder
503574

575+
/**
576+
* Set or remove members in a channel.
577+
*/
578+
fun manageChannelMembers(channelId: String, set: Collection<PNUser>, remove: Collection<String>): ManageChannelMembersBuilder
579+
504580
/**
505581
* Add an action on a published message. Returns the added action in the response.
506582
*/

pubnub-gson/pubnub-gson-api/src/main/java/com/pubnub/api/java/endpoints/objects_api/members/GetChannelMembers.java

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.pubnub.api.java.endpoints.objects_api.utils.PNSortKey;
77
import com.pubnub.api.java.models.consumer.objects_api.member.PNGetChannelMembersResult;
88

9+
@Deprecated
910
public interface GetChannelMembers extends Endpoint<PNGetChannelMembersResult> {
1011
GetChannelMembers limit(Integer limit);
1112

@@ -21,6 +22,7 @@ public interface GetChannelMembers extends Endpoint<PNGetChannelMembersResult> {
2122

2223
GetChannelMembers includeUUID(Include.PNUUIDDetailsLevel includeUUID);
2324

25+
@Deprecated
2426
interface Builder extends BuilderSteps.ChannelStep<GetChannelMembers> {
2527
@Override
2628
GetChannelMembers channel(String channel);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.pubnub.api.java.endpoints.objects_api.members;
2+
3+
import com.pubnub.api.java.endpoints.Endpoint;
4+
import com.pubnub.api.java.endpoints.objects_api.utils.PNSortKey;
5+
import com.pubnub.api.java.models.consumer.objects_api.member.MemberInclude;
6+
import com.pubnub.api.java.models.consumer.objects_api.member.PNGetChannelMembersResult;
7+
8+
public interface GetChannelMembersBuilder extends Endpoint<PNGetChannelMembersResult> {
9+
GetChannelMembersBuilder limit(Integer limit);
10+
GetChannelMembersBuilder page(com.pubnub.api.models.consumer.objects.PNPage page);
11+
GetChannelMembersBuilder filter(String filter);
12+
GetChannelMembersBuilder sort(java.util.Collection<PNSortKey> sort);
13+
GetChannelMembersBuilder include(MemberInclude include);
14+
}

pubnub-gson/pubnub-gson-api/src/main/java/com/pubnub/api/java/endpoints/objects_api/members/ManageChannelMembers.java

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import java.util.Collection;
1111

12+
@Deprecated
1213
public interface ManageChannelMembers extends Endpoint<PNManageChannelMembersResult> {
1314
ManageChannelMembers limit(Integer limit);
1415

@@ -24,6 +25,7 @@ public interface ManageChannelMembers extends Endpoint<PNManageChannelMembersRes
2425

2526
ManageChannelMembers includeUUID(Include.PNUUIDDetailsLevel includeUUID);
2627

28+
@Deprecated
2729
interface Builder extends ObjectsBuilderSteps.ChannelStep<ObjectsBuilderSteps.RemoveOrSetStep<ManageChannelMembers, PNUUID>> {
2830
@Override
2931
ObjectsBuilderSteps.RemoveOrSetStep<ManageChannelMembers, PNUUID> channel(String channel);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.pubnub.api.java.endpoints.objects_api.members;
2+
3+
import com.pubnub.api.java.endpoints.Endpoint;
4+
import com.pubnub.api.java.endpoints.objects_api.utils.PNSortKey;
5+
import com.pubnub.api.java.models.consumer.objects_api.member.MemberInclude;
6+
import com.pubnub.api.java.models.consumer.objects_api.member.PNManageChannelMembersResult;
7+
8+
import java.util.Collection;
9+
10+
public interface ManageChannelMembersBuilder extends Endpoint<PNManageChannelMembersResult> {
11+
ManageChannelMembersBuilder limit(Integer limit);
12+
ManageChannelMembersBuilder page(com.pubnub.api.models.consumer.objects.PNPage page);
13+
ManageChannelMembersBuilder filter(String filter);
14+
ManageChannelMembersBuilder sort(Collection<PNSortKey> sort);
15+
ManageChannelMembersBuilder include(MemberInclude include);
16+
}

pubnub-gson/pubnub-gson-api/src/main/java/com/pubnub/api/java/endpoints/objects_api/members/RemoveChannelMembers.java

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import java.util.Collection;
1111

12+
@Deprecated
1213
public interface RemoveChannelMembers extends Endpoint<PNRemoveChannelMembersResult> {
1314

1415
RemoveChannelMembers limit(Integer limit);
@@ -25,6 +26,7 @@ public interface RemoveChannelMembers extends Endpoint<PNRemoveChannelMembersRes
2526

2627
RemoveChannelMembers includeUUID(Include.PNUUIDDetailsLevel includeUUID);
2728

29+
@Deprecated
2830
interface Builder extends BuilderSteps.ChannelStep<ObjectsBuilderSteps.UUIDsStep<RemoveChannelMembers>> {
2931
@Override
3032
ObjectsBuilderSteps.UUIDsStep<RemoveChannelMembers> channel(String channel);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.pubnub.api.java.endpoints.objects_api.members;
2+
3+
import com.pubnub.api.java.endpoints.Endpoint;
4+
import com.pubnub.api.java.endpoints.objects_api.utils.PNSortKey;
5+
import com.pubnub.api.java.models.consumer.objects_api.member.MemberInclude;
6+
import com.pubnub.api.java.models.consumer.objects_api.member.PNRemoveChannelMembersResult;
7+
8+
import java.util.Collection;
9+
10+
public interface RemoveChannelMembersBuilder extends Endpoint<PNRemoveChannelMembersResult> {
11+
RemoveChannelMembersBuilder limit(Integer limit);
12+
RemoveChannelMembersBuilder page(com.pubnub.api.models.consumer.objects.PNPage page);
13+
RemoveChannelMembersBuilder filter(String filter);
14+
RemoveChannelMembersBuilder sort(Collection<PNSortKey> sort);
15+
RemoveChannelMembersBuilder include(MemberInclude include);
16+
}

pubnub-gson/pubnub-gson-api/src/main/java/com/pubnub/api/java/endpoints/objects_api/members/SetChannelMembers.java

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import java.util.Collection;
1111

12+
@Deprecated
1213
public interface SetChannelMembers extends Endpoint<PNSetChannelMembersResult> {
1314

1415
SetChannelMembers limit(Integer limit);
@@ -25,6 +26,7 @@ public interface SetChannelMembers extends Endpoint<PNSetChannelMembersResult> {
2526

2627
SetChannelMembers includeUUID(Include.PNUUIDDetailsLevel includeUUID);
2728

29+
@Deprecated
2830
interface Builder extends BuilderSteps.ChannelStep<ObjectsBuilderSteps.UUIDsStep<SetChannelMembers>> {
2931
@Override
3032
ObjectsBuilderSteps.UUIDsStep<SetChannelMembers> channel(String channel);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.pubnub.api.java.endpoints.objects_api.members;
2+
3+
import com.pubnub.api.java.endpoints.Endpoint;
4+
import com.pubnub.api.java.endpoints.objects_api.utils.PNSortKey;
5+
import com.pubnub.api.java.models.consumer.objects_api.member.MemberInclude;
6+
import com.pubnub.api.java.models.consumer.objects_api.member.PNSetChannelMembersResult;
7+
8+
import java.util.Collection;
9+
10+
public interface SetChannelMembersBuilder extends Endpoint<PNSetChannelMembersResult> {
11+
SetChannelMembers limit(Integer limit);
12+
SetChannelMembers page(com.pubnub.api.models.consumer.objects.PNPage page);
13+
SetChannelMembers filter(String filter);
14+
SetChannelMembers sort(Collection<PNSortKey> sort);
15+
SetChannelMembers include(MemberInclude include);
16+
}

pubnub-gson/pubnub-gson-api/src/main/java/com/pubnub/api/java/endpoints/objects_api/memberships/GetMemberships.java

+35
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,24 @@
33
import com.pubnub.api.java.endpoints.Endpoint;
44
import com.pubnub.api.java.endpoints.objects_api.utils.Include;
55
import com.pubnub.api.java.endpoints.objects_api.utils.PNSortKey;
6+
import com.pubnub.api.java.models.consumer.objects_api.membership.MembershipInclude;
67
import com.pubnub.api.java.models.consumer.objects_api.membership.PNGetMembershipsResult;
78

89
public interface GetMemberships extends Endpoint<PNGetMembershipsResult> {
10+
/**
11+
* Set the user ID for fetching memberships.
12+
*
13+
* @param userId the user ID
14+
* @return the current instance of {@code GetMemberships}
15+
*/
16+
GetMemberships userId(String userId);
17+
18+
/**
19+
* @deprecated Use {@link #userId(String)} instead.
20+
* @param uuid the user ID (previously referred to as UUID)
21+
* @return the current instance of {@code GetMemberships}
22+
*/
23+
@Deprecated()
924
GetMemberships uuid(String uuid);
1025

1126
GetMemberships limit(Integer limit);
@@ -16,9 +31,29 @@ public interface GetMemberships extends Endpoint<PNGetMembershipsResult> {
1631

1732
GetMemberships sort(java.util.Collection<PNSortKey> sort);
1833

34+
/**
35+
* @deprecated Use {@link #include(MembershipInclude)} instead.
36+
* @param includeTotalCount specifies in totalCount should be included in response
37+
* @return the current instance of {@code GetMemberships}
38+
*/
39+
@Deprecated()
1940
GetMemberships includeTotalCount(boolean includeTotalCount);
2041

42+
/**
43+
* @deprecated Use {@link #include(MembershipInclude)} instead.
44+
* @param includeCustom specifies in Custom data should be included in response
45+
* @return the current instance of {@code GetMemberships}
46+
*/
47+
@Deprecated()
2148
GetMemberships includeCustom(boolean includeCustom);
2249

50+
/**
51+
* @deprecated Use {@link #include(MembershipInclude)} instead.
52+
* @param includeChannel specifies in ChannelMetadata should be included in response
53+
* @return the current instance of {@code GetMemberships}
54+
*/
55+
@Deprecated()
2356
GetMemberships includeChannel(Include.PNChannelDetailsLevel includeChannel);
57+
58+
GetMemberships include(MembershipInclude include);
2459
}

pubnub-gson/pubnub-gson-api/src/main/java/com/pubnub/api/java/endpoints/objects_api/memberships/ManageMemberships.java

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import java.util.Collection;
1111

12+
@Deprecated
1213
public interface ManageMemberships extends Endpoint<PNManageMembershipResult> {
1314

1415
ManageMemberships set(Collection<PNChannelMembership> set);
@@ -31,6 +32,7 @@ public interface ManageMemberships extends Endpoint<PNManageMembershipResult> {
3132

3233
ManageMemberships includeChannel(Include.PNChannelDetailsLevel includeChannel);
3334

35+
@Deprecated
3436
interface Builder extends ObjectsBuilderSteps.RemoveOrSetStep<ManageMemberships, PNChannelMembership> {
3537
@Override
3638
RemoveStep<ManageMemberships, PNChannelMembership> set(Collection<PNChannelMembership> channelsToSet);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.pubnub.api.java.endpoints.objects_api.memberships;
2+
3+
import com.pubnub.api.java.endpoints.Endpoint;
4+
import com.pubnub.api.java.endpoints.objects_api.utils.PNSortKey;
5+
import com.pubnub.api.java.models.consumer.objects_api.membership.MembershipInclude;
6+
import com.pubnub.api.java.models.consumer.objects_api.membership.PNManageMembershipResult;
7+
8+
import java.util.Collection;
9+
10+
public interface ManageMembershipsBuilder extends Endpoint<PNManageMembershipResult> {
11+
ManageMembershipsBuilder userId(String userId);
12+
ManageMembershipsBuilder limit(Integer limit);
13+
ManageMembershipsBuilder page(com.pubnub.api.models.consumer.objects.PNPage page);
14+
ManageMembershipsBuilder filter(String filter);
15+
ManageMembershipsBuilder sort(Collection<PNSortKey> sort);
16+
ManageMembershipsBuilder include(MembershipInclude include);
17+
}

pubnub-gson/pubnub-gson-api/src/main/java/com/pubnub/api/java/endpoints/objects_api/memberships/RemoveMemberships.java

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import java.util.Collection;
1212

13+
@Deprecated
1314
public interface RemoveMemberships extends Endpoint<PNRemoveMembershipResult> {
1415

1516
RemoveMemberships uuid(String uuid);
@@ -28,6 +29,7 @@ public interface RemoveMemberships extends Endpoint<PNRemoveMembershipResult> {
2829

2930
RemoveMemberships includeChannel(Include.PNChannelDetailsLevel includeChannel);
3031

32+
@Deprecated
3133
interface Builder extends ObjectsBuilderSteps.ChannelMembershipsStep<RemoveMemberships> {
3234
@Override
3335
RemoveMemberships channelMemberships(@NotNull Collection<PNChannelMembership> channelMemberships);

0 commit comments

Comments
 (0)