Skip to content

Commit

Permalink
Finished one more wrapper
Browse files Browse the repository at this point in the history
  • Loading branch information
pasotee committed May 12, 2024
1 parent 75872a3 commit f2133cf
Show file tree
Hide file tree
Showing 14 changed files with 193 additions and 172 deletions.
2 changes: 1 addition & 1 deletion Source/ConfigCat/Private/ConfigCatSubsystem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#include "ConfigCatLogger.h"
#include "ConfigCatNetworkAdapter.h"
#include "ConfigCatSettings.h"
#include "Wrapper/ConfigCatSettingsWrapper.h"
#include "Wrappers/ConfigCatSettingsWrapper.h"
#include "Wrapper/ConfigCatEvaluationWrapper.h"
#include "Wrappers/ConfigCatUserWrapper.h"
#include "Wrappers/ConfigCatValueWrapper.h"
Expand Down
95 changes: 0 additions & 95 deletions Source/ConfigCat/Private/Wrapper/ConfigCatEvaluationWrapper.cpp

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// Fill out your copyright notice in the Description page of Project Settings.


#include "Wrapper/ConfigCatPercentageOptionWrapper.h"

UConfigCatPercentageOptionWrapper* UConfigCatPercentageOptionWrapper::CreatePercentageOptions(const configcat::PercentageOption& InPercentageOptions)
{
return {};
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// Fill out your copyright notice in the Description page of Project Settings.


#include "Wrapper/ConfigCatTargetingRulesWrapper.h"
#include "Wrapper/ConfigCatTargetingRuleWrapper.h"

UConfigCatTargetingRulesWrapper* UConfigCatTargetingRulesWrapper::CreateTargetingRules(const configcat::TargetingRules& InPercentageOptions)
UConfigCatTargetingRuleWrapper* UConfigCatTargetingRuleWrapper::CreateTargetingRules(const configcat::TargetingRule& InPercentageOptions)
{
return {};
}
116 changes: 116 additions & 0 deletions Source/ConfigCat/Private/Wrappers/ConfigCatEvaluationWrapper.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
// Fill out your copyright notice in the Description page of Project Settings.

#include "Wrapper/ConfigCatEvaluationWrapper.h"

#include "ConfigCatCppSDK/Include/log.h"
#include "Wrapper/ConfigCatPercentageOptionWrapper.h"
#include "Wrapper/ConfigCatTargetingRuleWrapper.h"
#include "Wrappers/ConfigCatUserWrapper.h"
#include "Wrappers/ConfigCatValueWrapper.h"

UConfigCatEvaluationWrapper* UConfigCatEvaluationWrapper::CreateEvaluation(const configcat::EvaluationDetailsBase& InEvaluationDetails)
{
UConfigCatEvaluationWrapper* Result = NewObject<UConfigCatEvaluationWrapper>();
Result->EvaluationDetails = std::make_shared<configcat::EvaluationDetails<>>(to_concrete(InEvaluationDetails));
return Result;
}

FString UConfigCatEvaluationWrapper::GetKey() const
{
if (EvaluationDetails)
{
return UTF8_TO_TCHAR(EvaluationDetails->key.c_str());
}

return {};
}

UConfigCatValueWrapper* UConfigCatEvaluationWrapper::GetValue() const
{
if (EvaluationDetails)
{
return UConfigCatValueWrapper::CreateValue(EvaluationDetails->value);
}

return {};
}

FString UConfigCatEvaluationWrapper::GetVariationId() const
{
if (EvaluationDetails && EvaluationDetails->variationId.has_value())
{
return UTF8_TO_TCHAR(EvaluationDetails->variationId.value().c_str());
}

return {};
}

FDateTime UConfigCatEvaluationWrapper::GetFetchTime() const
{
if (EvaluationDetails)
{
const auto TimeSinceEpoch = EvaluationDetails->fetchTime.time_since_epoch().count();
return FDateTime::FromUnixTimestamp(TimeSinceEpoch);
}

return {};
}

UConfigCatUserWrapper* UConfigCatEvaluationWrapper::GetUser() const
{
if (EvaluationDetails && EvaluationDetails->user)
{
return UConfigCatUserWrapper::CreateUser(EvaluationDetails->user);
}

return {};
}

bool UConfigCatEvaluationWrapper::IsDefaultValue() const
{
if (EvaluationDetails)
{
return EvaluationDetails->isDefaultValue;
}

return {};
}

FString UConfigCatEvaluationWrapper::GetError() const
{
if (EvaluationDetails && EvaluationDetails->errorMessage.has_value())
{
return UTF8_TO_TCHAR(EvaluationDetails->errorMessage.value().c_str());
}

return {};
}

FString UConfigCatEvaluationWrapper::GetException() const
{
if(EvaluationDetails && EvaluationDetails->errorException)
{
return UTF8_TO_TCHAR(unwrap_exception_message(EvaluationDetails->errorException).c_str());
}
return {};
}

UConfigCatTargetingRuleWrapper* UConfigCatEvaluationWrapper::GetMatchedTargetingRule() const
{
if(EvaluationDetails && EvaluationDetails->matchedTargetingRule)
{
return UConfigCatTargetingRuleWrapper::CreateTargetingRules(EvaluationDetails->matchedTargetingRule.value());
}

return {};
}

UConfigCatPercentageOptionWrapper* UConfigCatEvaluationWrapper::GetMatchedPercentageOption() const
{
if(EvaluationDetails && EvaluationDetails->matchedPercentageOption)
{
return UConfigCatPercentageOptionWrapper::CreatePercentageOptions(EvaluationDetails->matchedPercentageOption.value());
}

return {};
}
24 changes: 18 additions & 6 deletions Source/ConfigCat/Private/Wrappers/ConfigCatSettingsWrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

#include "Wrappers/ConfigCatSettingsWrapper.h"

#include "Wrapper/ConfigCatPercentageOptionsWrapper.h"
#include "Wrapper/ConfigCatTargetingRulesWrapper.h"
#include "Wrapper/ConfigCatPercentageOptionWrapper.h"
#include "Wrapper/ConfigCatTargetingRuleWrapper.h"
#include "Wrappers/ConfigCatValueWrapper.h"

using namespace configcat;
Expand Down Expand Up @@ -50,14 +50,26 @@ UConfigCatValueWrapper* UConfigCatSettingWrapper::GetValue() const
return UConfigCatValueWrapper::CreateValue(Setting.value);
}

UConfigCatTargetingRulesWrapper* UConfigCatSettingWrapper::GetTargetingRules() const
TArray<UConfigCatTargetingRuleWrapper*> UConfigCatSettingWrapper::GetTargetingRules() const
{
return UConfigCatTargetingRulesWrapper::CreateTargetingRules(Setting.targetingRules);
TArray<UConfigCatTargetingRuleWrapper*> Result;
for(const auto& Rule : Setting.targetingRules)
{
Result.Add(UConfigCatTargetingRuleWrapper::CreateTargetingRules(Rule));
}

return Result;
}

UConfigCatPercentageOptionsWrapper* UConfigCatSettingWrapper::GetPercentageOptions() const
TArray<UConfigCatPercentageOptionWrapper*> UConfigCatSettingWrapper::GetPercentageOptions() const
{
return UConfigCatPercentageOptionsWrapper::CreatePercentageOptions(Setting.percentageOptions);
TArray<UConfigCatPercentageOptionWrapper*> Result;
for(const auto& Option : Setting.percentageOptions)
{
Result.Add(UConfigCatPercentageOptionWrapper::CreatePercentageOptions(Option));
}

return Result;
}

UConfigCatSettingsWrapper* UConfigCatSettingsWrapper::CreateSettings(const std::shared_ptr<const configcat::Settings>& InSettings)
Expand Down
9 changes: 6 additions & 3 deletions Source/ConfigCat/Private/Wrappers/ConfigCatUserWrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ using namespace configcat;

UConfigCatUserWrapper* UConfigCatUserWrapper::CreateUser(const FString& Id, const FString& Email, const FString& Country, const TMap<FString, FString>& Attributes)
{
UConfigCatUserWrapper* Result = NewObject<UConfigCatUserWrapper>();

const std::string& UserId = TCHAR_TO_UTF8(*Id);
const std::string& UserEmail = TCHAR_TO_UTF8(*Email);
const std::string& UserCountry = TCHAR_TO_UTF8(*Country);
Expand All @@ -23,8 +21,13 @@ UConfigCatUserWrapper* UConfigCatUserWrapper::CreateUser(const FString& Id, cons
UserAttributes.emplace(AttributeKey, AttributeValue);
}

Result->User = ConfigCatUser::create(UserId, UserEmail, UserCountry, UserAttributes);
return CreateUser(ConfigCatUser::create(UserId, UserEmail, UserCountry, UserAttributes));
}

UConfigCatUserWrapper* UConfigCatUserWrapper::CreateUser(const std::shared_ptr<configcat::ConfigCatUser>& InUser)
{
UConfigCatUserWrapper* Result = NewObject<UConfigCatUserWrapper>();
Result->User = InUser;
return Result;
}

Expand Down
22 changes: 22 additions & 0 deletions Source/ConfigCat/Public/Wrapper/ConfigCatPercentageOptionWrapper.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "ConfigCatCppSDK/Include/config.h"
#include "UObject/Object.h"
#include "ConfigCatPercentageOptionWrapper.generated.h"

/**
*
*/
UCLASS()
class CONFIGCAT_API UConfigCatPercentageOptionWrapper : public UObject
{
GENERATED_BODY()


public:
static UConfigCatPercentageOptionWrapper* CreatePercentageOptions(const configcat::PercentageOption& InPercentageOptions);

};

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@
#include "CoreMinimal.h"
#include "ConfigCatCppSDK/Include/config.h"
#include "UObject/Object.h"
#include "ConfigCatTargetingRulesWrapper.generated.h"
#include "ConfigCatTargetingRuleWrapper.generated.h"

/**
*
*/
UCLASS()
class CONFIGCAT_API UConfigCatTargetingRulesWrapper : public UObject
class CONFIGCAT_API UConfigCatTargetingRuleWrapper : public UObject
{
GENERATED_BODY()

public:
static UConfigCatTargetingRulesWrapper* CreateTargetingRules(const configcat::TargetingRules& InPercentageOptions);
static UConfigCatTargetingRuleWrapper* CreateTargetingRules(const configcat::TargetingRule& InPercentageOptions);
};

Loading

0 comments on commit f2133cf

Please sign in to comment.