Skip to content

Commit b16f97f

Browse files
Ignore User and Channel ID from provided structs when setting metadata.
1 parent aca9fd9 commit b16f97f

File tree

6 files changed

+26
-24
lines changed

6 files changed

+26
-24
lines changed

Source/PubnubLibrary/Private/FunctionLibraries/PubnubJsonUtilities.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -588,13 +588,13 @@ FPubnubUserData UPubnubJsonUtilities::GetUserDataFromJson(FString ResponseJson)
588588
return UserData;
589589
}
590590

591-
FString UPubnubJsonUtilities::GetJsonFromUserData(const FPubnubUserData& UserData)
591+
FString UPubnubJsonUtilities::GetJsonFromUserData(const FString UserID, const FPubnubUserData& UserData)
592592
{
593593
TSharedPtr<FJsonObject> JsonObject = MakeShareable(new FJsonObject());
594594

595595
if (!UserData.UserID.IsEmpty())
596596
{
597-
JsonObject->SetStringField(ANSI_TO_TCHAR("id"), UserData.UserID);
597+
JsonObject->SetStringField(ANSI_TO_TCHAR("id"), UserID);
598598
}
599599
if (!UserData.UserName.IsEmpty())
600600
{
@@ -669,13 +669,13 @@ FPubnubChannelData UPubnubJsonUtilities::GetChannelDataFromJson(FString Response
669669
return ChannelData;
670670
}
671671

672-
FString UPubnubJsonUtilities::GetJsonFromChannelData(const FPubnubChannelData& ChannelData)
672+
FString UPubnubJsonUtilities::GetJsonFromChannelData(const FString ChannelID, const FPubnubChannelData& ChannelData)
673673
{
674674
TSharedPtr<FJsonObject> JsonObject = MakeShareable(new FJsonObject());
675675

676676
if (!ChannelData.ChannelID.IsEmpty())
677677
{
678-
JsonObject->SetStringField(ANSI_TO_TCHAR("id"), ChannelData.ChannelID);
678+
JsonObject->SetStringField(ANSI_TO_TCHAR("id"), ChannelID);
679679
}
680680
if (!ChannelData.ChannelName.IsEmpty())
681681
{

Source/PubnubLibrary/Private/PubnubClient.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1049,17 +1049,17 @@ FPubnubUserMetadataResult UPubnubClient::SetUserMetadata(FString User, FPubnubUs
10491049
{
10501050
PUBNUB_RETURN_WRAPPER_IF_NOT_INITIALIZED(FPubnubUserMetadataResult());
10511051

1052-
return SetUserMetadata_priv(User, UPubnubJsonUtilities::GetJsonFromUserData(UserMetadata), UPubnubUtilities::GetMetadataIncludeToString(Include));
1052+
return SetUserMetadata_priv(User, UPubnubJsonUtilities::GetJsonFromUserData(User, UserMetadata), UPubnubUtilities::GetMetadataIncludeToString(Include));
10531053
}
10541054

10551055
void UPubnubClient::SetUserMetadataAsync(FString User, FPubnubUserData UserMetadata, FOnPubnubSetUserMetadataResponse OnSetUserMetadataResponse, FPubnubGetMetadataInclude Include)
10561056
{
1057-
SetUserMetadataRawAsync(User, UPubnubJsonUtilities::GetJsonFromUserData(UserMetadata), OnSetUserMetadataResponse, UPubnubUtilities::GetMetadataIncludeToString(Include));
1057+
SetUserMetadataRawAsync(User, UPubnubJsonUtilities::GetJsonFromUserData(User, UserMetadata), OnSetUserMetadataResponse, UPubnubUtilities::GetMetadataIncludeToString(Include));
10581058
}
10591059

10601060
void UPubnubClient::SetUserMetadataAsync(FString User, FPubnubUserData UserMetadata, FOnPubnubSetUserMetadataResponseNative NativeCallback, FPubnubGetMetadataInclude Include)
10611061
{
1062-
SetUserMetadataRawAsync(User, UPubnubJsonUtilities::GetJsonFromUserData(UserMetadata), NativeCallback, UPubnubUtilities::GetMetadataIncludeToString(Include));
1062+
SetUserMetadataRawAsync(User, UPubnubJsonUtilities::GetJsonFromUserData(User, UserMetadata), NativeCallback, UPubnubUtilities::GetMetadataIncludeToString(Include));
10631063
}
10641064

10651065
FPubnubUserMetadataResult UPubnubClient::GetUserMetadataRaw(FString User, FString Include)
@@ -1241,17 +1241,17 @@ FPubnubChannelMetadataResult UPubnubClient::SetChannelMetadata(FString Channel,
12411241
{
12421242
PUBNUB_RETURN_WRAPPER_IF_NOT_INITIALIZED(FPubnubChannelMetadataResult());
12431243

1244-
return SetChannelMetadata_priv(Channel, UPubnubJsonUtilities::GetJsonFromChannelData(ChannelMetadata), UPubnubUtilities::GetMetadataIncludeToString(Include));
1244+
return SetChannelMetadata_priv(Channel, UPubnubJsonUtilities::GetJsonFromChannelData(Channel, ChannelMetadata), UPubnubUtilities::GetMetadataIncludeToString(Include));
12451245
}
12461246

12471247
void UPubnubClient::SetChannelMetadataAsync(FString Channel, FPubnubChannelData ChannelMetadata, FOnPubnubSetChannelMetadataResponse OnSetChannelMetadataResponse, FPubnubGetMetadataInclude Include)
12481248
{
1249-
SetChannelMetadataRawAsync(Channel, UPubnubJsonUtilities::GetJsonFromChannelData(ChannelMetadata), OnSetChannelMetadataResponse, UPubnubUtilities::GetMetadataIncludeToString(Include));
1249+
SetChannelMetadataRawAsync(Channel, UPubnubJsonUtilities::GetJsonFromChannelData(Channel, ChannelMetadata), OnSetChannelMetadataResponse, UPubnubUtilities::GetMetadataIncludeToString(Include));
12501250
}
12511251

12521252
void UPubnubClient::SetChannelMetadataAsync(FString Channel, FPubnubChannelData ChannelMetadata, FOnPubnubSetChannelMetadataResponseNative NativeCallback, FPubnubGetMetadataInclude Include)
12531253
{
1254-
SetChannelMetadataRawAsync(Channel, UPubnubJsonUtilities::GetJsonFromChannelData(ChannelMetadata), NativeCallback, UPubnubUtilities::GetMetadataIncludeToString(Include));
1254+
SetChannelMetadataRawAsync(Channel, UPubnubJsonUtilities::GetJsonFromChannelData(Channel, ChannelMetadata), NativeCallback, UPubnubUtilities::GetMetadataIncludeToString(Include));
12551255
}
12561256

12571257
FPubnubChannelMetadataResult UPubnubClient::GetChannelMetadataRaw(FString Channel, FString Include)

Source/PubnubLibrary/Private/PubnubSubsystem.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -794,12 +794,12 @@ void UPubnubSubsystem::SetUserMetadataRaw(FString User, FString UserMetadataObj,
794794

795795
void UPubnubSubsystem::SetUserMetadata(FString User, FPubnubUserData UserMetadata, FOnSetUserMetadataResponse OnSetUserMetadataResponse, FPubnubGetMetadataInclude Include)
796796
{
797-
SetUserMetadataRaw(User, UPubnubJsonUtilities::GetJsonFromUserData(UserMetadata), OnSetUserMetadataResponse, UPubnubUtilities::GetMetadataIncludeToString(Include));
797+
SetUserMetadataRaw(User, UPubnubJsonUtilities::GetJsonFromUserData(User, UserMetadata), OnSetUserMetadataResponse, UPubnubUtilities::GetMetadataIncludeToString(Include));
798798
}
799799

800800
void UPubnubSubsystem::SetUserMetadata(FString User, FPubnubUserData UserMetadata, FOnSetUserMetadataResponseNative NativeCallback, FPubnubGetMetadataInclude Include)
801801
{
802-
SetUserMetadataRaw(User, UPubnubJsonUtilities::GetJsonFromUserData(UserMetadata), NativeCallback, UPubnubUtilities::GetMetadataIncludeToString(Include));
802+
SetUserMetadataRaw(User, UPubnubJsonUtilities::GetJsonFromUserData(User, UserMetadata), NativeCallback, UPubnubUtilities::GetMetadataIncludeToString(Include));
803803
}
804804

805805
void UPubnubSubsystem::GetUserMetadataRaw(FString User, FOnGetUserMetadataResponse OnGetUserMetadataResponse, FString Include)
@@ -928,12 +928,12 @@ void UPubnubSubsystem::SetChannelMetadataRaw(FString Channel, FString ChannelMet
928928

929929
void UPubnubSubsystem::SetChannelMetadata(FString Channel, FPubnubChannelData ChannelMetadata, FOnSetChannelMetadataResponse OnSetChannelMetadataResponse, FPubnubGetMetadataInclude Include)
930930
{
931-
SetChannelMetadataRaw(Channel, UPubnubJsonUtilities::GetJsonFromChannelData(ChannelMetadata), OnSetChannelMetadataResponse, UPubnubUtilities::GetMetadataIncludeToString(Include));
931+
SetChannelMetadataRaw(Channel, UPubnubJsonUtilities::GetJsonFromChannelData(Channel, ChannelMetadata), OnSetChannelMetadataResponse, UPubnubUtilities::GetMetadataIncludeToString(Include));
932932
}
933933

934934
void UPubnubSubsystem::SetChannelMetadata(FString Channel, FPubnubChannelData ChannelMetadata, FOnSetChannelMetadataResponseNative NativeCallback, FPubnubGetMetadataInclude Include)
935935
{
936-
SetChannelMetadataRaw(Channel, UPubnubJsonUtilities::GetJsonFromChannelData(ChannelMetadata), NativeCallback, UPubnubUtilities::GetMetadataIncludeToString(Include));
936+
SetChannelMetadataRaw(Channel, UPubnubJsonUtilities::GetJsonFromChannelData(Channel, ChannelMetadata), NativeCallback, UPubnubUtilities::GetMetadataIncludeToString(Include));
937937
}
938938

939939
void UPubnubSubsystem::GetChannelMetadataRaw(FString Channel, FOnGetChannelMetadataResponse OnGetChannelMetadataResponse, FString Include)

Source/PubnubLibrary/Public/FunctionLibraries/PubnubJsonUtilities.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,10 @@ class PUBNUBLIBRARY_API UPubnubJsonUtilities : public UBlueprintFunctionLibrary
118118
static FPubnubUserData GetUserDataFromJson(FString ResponseJson);
119119

120120
/**
121-
* Converter from FPubnubUserData to Json string containing User data
121+
* Converter from FPubnubUserData to Json string containing User data.
122+
* UserID is provided separately, because during Set operations ID from the struct is ignored.
122123
*/
123-
static FString GetJsonFromUserData(const FPubnubUserData& UserData);
124+
static FString GetJsonFromUserData(const FString UserID, const FPubnubUserData& UserData);
124125

125126
/**
126127
* Converter from Json string containing Channel data to FPubnubChannelData
@@ -129,9 +130,10 @@ class PUBNUBLIBRARY_API UPubnubJsonUtilities : public UBlueprintFunctionLibrary
129130
static FPubnubChannelData GetChannelDataFromJson(FString ResponseJson);
130131

131132
/**
132-
* Converter from FPubnubChannelData to Json string containing Channel data
133+
* Converter from FPubnubChannelData to Json string containing Channel data.
134+
* ChannelID is provided separately, because during Set operations ID from the struct is ignored.
133135
*/
134-
static FString GetJsonFromChannelData(const FPubnubChannelData& ChannelData);
136+
static FString GetJsonFromChannelData(const FString ChannelID, const FPubnubChannelData& ChannelData);
135137

136138
/**
137139
* Converter from Json string containing Membership data to FPubnubMembershipData

Source/PubnubLibrary/Public/PubnubStructLibrary.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ struct FPubnubUserData
404404
{
405405
GENERATED_BODY()
406406

407-
//Unique user identifier.
407+
//Unique user identifier. Ignored during set operations.
408408
UPROPERTY(BlueprintReadWrite, VisibleAnywhere, Category = "Pubnub") FString UserID = "";
409409
//Display name for the user.
410410
UPROPERTY(BlueprintReadWrite, VisibleAnywhere, Category = "Pubnub") FString UserName = "";
@@ -435,7 +435,7 @@ struct FPubnubChannelData
435435
{
436436
GENERATED_BODY()
437437

438-
//Unique channel identifier.
438+
//Unique channel identifier. Ignored during set operations.
439439
UPROPERTY(BlueprintReadWrite, VisibleAnywhere, Category = "Pubnub") FString ChannelID = "";
440440
//Display name for the channel.
441441
UPROPERTY(BlueprintReadWrite, VisibleAnywhere, Category = "Pubnub") FString ChannelName = "";

Source/PubnubLibraryTests/Private/Tests/PubnubUnitTests.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1785,7 +1785,7 @@ bool FGetJsonFromUserDataUnitTest::RunTest(const FString& Parameters)
17851785
UserData.Updated = "2024-10-28T09:03:32.977029Z";
17861786
UserData.ETag = "test-etag";
17871787

1788-
FString JsonString = UPubnubJsonUtilities::GetJsonFromUserData(UserData);
1788+
FString JsonString = UPubnubJsonUtilities::GetJsonFromUserData(UserData.UserID, UserData);
17891789

17901790
TestTrue("Should contain user ID", JsonString.Contains("\"id\":\"user123\""));
17911791
TestTrue("Should contain user name", JsonString.Contains("\"name\":\"Test User\""));
@@ -1801,7 +1801,7 @@ bool FGetJsonFromUserDataUnitTest::RunTest(const FString& Parameters)
18011801
FPubnubUserData MinimalUserData;
18021802
MinimalUserData.UserID = "user456";
18031803

1804-
FString MinimalJsonString = UPubnubJsonUtilities::GetJsonFromUserData(MinimalUserData);
1804+
FString MinimalJsonString = UPubnubJsonUtilities::GetJsonFromUserData(MinimalUserData.UserID, MinimalUserData);
18051805

18061806
TestTrue("Should contain user ID for minimal data", MinimalJsonString.Contains("\"id\":\"user456\""));
18071807
TestFalse("Should not contain empty name field", MinimalJsonString.Contains("\"name\":\"\""));
@@ -1853,7 +1853,7 @@ bool FGetJsonFromChannelDataUnitTest::RunTest(const FString& Parameters)
18531853
ChannelData.Updated = "2024-10-28T09:03:32.977029Z";
18541854
ChannelData.ETag = "test-etag";
18551855

1856-
FString JsonString = UPubnubJsonUtilities::GetJsonFromChannelData(ChannelData);
1856+
FString JsonString = UPubnubJsonUtilities::GetJsonFromChannelData(ChannelData.ChannelID, ChannelData);
18571857

18581858
TestTrue("Should contain channel ID", JsonString.Contains("\"id\":\"channel123\""));
18591859
TestTrue("Should contain channel name", JsonString.Contains("\"name\":\"Test Channel\""));
@@ -1867,7 +1867,7 @@ bool FGetJsonFromChannelDataUnitTest::RunTest(const FString& Parameters)
18671867
FPubnubChannelData MinimalChannelData;
18681868
MinimalChannelData.ChannelID = "channel456";
18691869

1870-
FString MinimalJsonString = UPubnubJsonUtilities::GetJsonFromChannelData(MinimalChannelData);
1870+
FString MinimalJsonString = UPubnubJsonUtilities::GetJsonFromChannelData(MinimalChannelData.ChannelID, MinimalChannelData);
18711871

18721872
TestTrue("Should contain channel ID for minimal data", MinimalJsonString.Contains("\"id\":\"channel456\""));
18731873
TestFalse("Should not contain empty name field", MinimalJsonString.Contains("\"name\":\"\""));

0 commit comments

Comments
 (0)