@@ -34,7 +34,7 @@ std::tuple<std::vector<Pubnub::Membership>, Pubnub::Page, int, Pubnub::String> M
34
34
throw std::invalid_argument (" can't get members, limit has to be within 0 - " + std::to_string (PN_MAX_LIMIT) + " range" );
35
35
}
36
36
37
- String include_string = " custom,channel,totalCount,customChannel " ;
37
+ String include_string = " custom,channel,totalCount,channel.custom,status,type " ;
38
38
39
39
auto get_channel_members_response = [this , channel_id, include_string, limit, filter, sort, page] {
40
40
auto pubnub_handle = this ->pubnub ->lock ();
@@ -81,7 +81,7 @@ std::tuple<std::vector<Pubnub::Membership>, Pubnub::Page, int, Pubnub::String> M
81
81
throw std::invalid_argument (" can't get memberships, limit has to be within 0 - " + std::to_string (PN_MAX_LIMIT) + " range" );
82
82
}
83
83
84
- String include_string = " totalCount,custom,channel,customChannel,channelType, status,channelStatus " ;
84
+ String include_string = " totalCount,custom,channel,channel.custom,type,channel.type, status,channel.status " ;
85
85
86
86
auto get_memberships_response = [this , user_id, include_string, filter, sort, limit, page] {
87
87
auto pubnub_handle = this ->pubnub ->lock ();
@@ -138,7 +138,7 @@ Membership MembershipService::invite_to_channel(const String& channel_id, const
138
138
return members[0 ];
139
139
}
140
140
141
- String include_string = " custom,channel,totalCount,customChannel " ;
141
+ String include_string = " custom,channel,totalCount,channel.custom,status,type " ;
142
142
String set_memeberships_obj = create_set_memberships_object (channel_id, " " );
143
143
144
144
auto user_id = user.user_id ();
@@ -181,7 +181,7 @@ std::vector<Membership> MembershipService::invite_multiple_to_channel(const Stri
181
181
}
182
182
}
183
183
184
- String include_string = " custom,channel,totalCount,customChannel " ;
184
+ String include_string = " custom,channel,totalCount,channel.custom,status,type " ;
185
185
String set_memebers_obj = create_set_members_object (users_ids, " " );
186
186
187
187
auto set_members_response = [this , channel_id, set_memebers_obj, include_string, filter] {
@@ -215,9 +215,11 @@ std::vector<Membership> MembershipService::invite_multiple_to_channel(const Stri
215
215
return invitees_memberships;
216
216
}
217
217
218
- Membership MembershipService::update (const User& user, const Channel& channel, const String& custom_object_json) const {
218
+ Membership MembershipService::update (const User& user, const Channel& channel, MembershipDAO membership_data) const {
219
+ auto entity = membership_data.to_entity ();
220
+
219
221
String custom_object_json_string;
220
- custom_object_json. empty () ? custom_object_json_string = " {}" : custom_object_json_string = custom_object_json ;
222
+ entity. custom_field . empty () ? custom_object_json_string = " {}" : custom_object_json_string = entity. custom_field ;
221
223
222
224
json response_json = json::parse (custom_object_json_string);
223
225
@@ -226,18 +228,16 @@ Membership MembershipService::update(const User& user, const Channel& channel, c
226
228
throw std::invalid_argument (" Can't update membership, custom_object_json is not valid json object" );
227
229
}
228
230
229
- String set_memberships_string = String (" [{\" channel\" : {\" id\" : \" " ) + channel.channel_id () + String (" \" }, \" custom\" : " ) + custom_object_json_string + String (" }]" );
230
-
231
231
{
232
232
auto pubnub_handle = pubnub->lock ();
233
- pubnub_handle->set_memberships (user.user_id (), set_memberships_string );
233
+ pubnub_handle->set_memberships (user.user_id (), entity. get_set_memberships_json_string (channel. channel_id ()) );
234
234
}
235
235
236
- return create_membership_object (user, channel, create_domain_membership (custom_object_json_string) );
236
+ return create_membership_object (user, channel, entity );
237
237
}
238
238
239
239
String MembershipService::last_read_message_timetoken (const Membership& membership) const {
240
- String custom_data = membership.custom_data () ;
240
+ String custom_data = membership.membership_data (). custom_data_json ;
241
241
if (custom_data.empty ())
242
242
{
243
243
return String ();
@@ -250,7 +250,7 @@ String MembershipService::last_read_message_timetoken(const Membership& membersh
250
250
251
251
Pubnub::Membership MembershipService::set_last_read_message_timetoken (const Membership& membership, const String& timetoken) const {
252
252
253
- String custom_data = membership.custom_data ().empty () ? " {}" : membership.custom_data () ;
253
+ String custom_data = membership.membership_data ().custom_data_json . empty () ? " {}" : membership.membership_data (). custom_data_json ;
254
254
255
255
Json custom_data_json = Json::parse (custom_data);
256
256
custom_data_json.insert_or_update (" lastReadMessageTimetoken" , timetoken);
@@ -360,7 +360,7 @@ std::tuple<Pubnub::Page, int, int, std::vector<Pubnub::Membership>> MembershipSe
360
360
{
361
361
relevant_channel_ids.push_back (membership.channel .channel_id ());
362
362
363
- String custom_object_json_string = membership.custom_data ().empty () ? String (" {}" ) : membership.custom_data () ;
363
+ String custom_object_json_string = membership.membership_data ().custom_data_json . empty () ? String (" {}" ) : membership.membership_data (). custom_data_json ;
364
364
json custom_object_json = json::parse (custom_object_json_string);
365
365
custom_object_json[" lastReadMessageTimetoken" ] = now_timetoken.c_str ();
366
366
@@ -380,7 +380,7 @@ std::tuple<Pubnub::Page, int, int, std::vector<Pubnub::Membership>> MembershipSe
380
380
381
381
auto memberships_response = [this , current_user, set_memberships_string] {
382
382
auto pubnub_handle = pubnub->lock ();
383
- String include_string = " custom,channel,totalCount,customChannel " ;
383
+ String include_string = " custom,channel,totalCount,custom.channel,status,type " ;
384
384
return pubnub_handle->set_memberships (current_user.user_id (), set_memberships_string, include_string);
385
385
}();
386
386
@@ -479,16 +479,9 @@ Membership MembershipService::create_membership_object(const User& user, const C
479
479
throw std::runtime_error (" Can't create membership, chat service pointer is invalid" );
480
480
}
481
481
482
- MembershipEntity MembershipService::create_domain_membership (const String& custom_object_json) const {
483
- MembershipEntity new_membership_entity;
484
- new_membership_entity.custom_field = custom_object_json;
485
- return new_membership_entity;
486
-
487
- }
488
-
489
482
Pubnub::Membership MembershipService::update_membership_with_base (const Pubnub::Membership& membership, const Pubnub::Membership& base_membership) const {
490
- MembershipEntity base_entity = MembershipDAO (base_membership.custom_data ()).to_entity ();
491
- MembershipEntity membership_entity = MembershipDAO (membership.custom_data ()).to_entity ();
483
+ MembershipEntity base_entity = MembershipDAO (base_membership.membership_data ()).to_entity ();
484
+ MembershipEntity membership_entity = MembershipDAO (membership.membership_data ()).to_entity ();
492
485
493
486
return create_membership_object (
494
487
base_membership.user ,
0 commit comments