94 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright (c) 2022 Sentry. All Rights Reserved.
 | 
						|
 | 
						|
#include "SentryUserDesktop.h"
 | 
						|
 | 
						|
#include "Infrastructure/SentryConvertorsDesktop.h"
 | 
						|
 | 
						|
#if USE_SENTRY_NATIVE
 | 
						|
 | 
						|
SentryUserDesktop::SentryUserDesktop()
 | 
						|
{
 | 
						|
	UserDesktop = sentry_value_new_object();
 | 
						|
 | 
						|
	// Due to backwards compatibility concerns it is more reliable to initialize IP address explicitly with a specific value or "{{auto}}"
 | 
						|
	sentry_value_set_by_key(UserDesktop, "ip_address", sentry_value_new_string("{{auto}}"));
 | 
						|
}
 | 
						|
 | 
						|
SentryUserDesktop::SentryUserDesktop(sentry_value_t user)
 | 
						|
{
 | 
						|
	UserDesktop = user;
 | 
						|
}
 | 
						|
 | 
						|
SentryUserDesktop::~SentryUserDesktop()
 | 
						|
{
 | 
						|
	// Put custom destructor logic here if needed
 | 
						|
}
 | 
						|
 | 
						|
sentry_value_t SentryUserDesktop::GetNativeObject()
 | 
						|
{
 | 
						|
	return UserDesktop;
 | 
						|
}
 | 
						|
 | 
						|
void SentryUserDesktop::SetEmail(const FString& email)
 | 
						|
{
 | 
						|
	sentry_value_set_by_key(UserDesktop, "email", sentry_value_new_string(TCHAR_TO_ANSI(*email)));
 | 
						|
}
 | 
						|
 | 
						|
FString SentryUserDesktop::GetEmail() const
 | 
						|
{
 | 
						|
	sentry_value_t email = sentry_value_get_by_key(UserDesktop, "email");
 | 
						|
	return FString(sentry_value_as_string(email));
 | 
						|
}
 | 
						|
 | 
						|
void SentryUserDesktop::SetId(const FString& id)
 | 
						|
{
 | 
						|
	sentry_value_set_by_key(UserDesktop, "id", sentry_value_new_string(TCHAR_TO_ANSI(*id)));
 | 
						|
}
 | 
						|
 | 
						|
FString SentryUserDesktop::GetId() const
 | 
						|
{
 | 
						|
	sentry_value_t id = sentry_value_get_by_key(UserDesktop, "id");
 | 
						|
	return FString(sentry_value_as_string(id));
 | 
						|
}
 | 
						|
 | 
						|
void SentryUserDesktop::SetUsername(const FString& username)
 | 
						|
{
 | 
						|
	sentry_value_set_by_key(UserDesktop, "username", sentry_value_new_string(TCHAR_TO_ANSI(*username)));
 | 
						|
}
 | 
						|
 | 
						|
FString SentryUserDesktop::GetUsername() const
 | 
						|
{
 | 
						|
	sentry_value_t username = sentry_value_get_by_key(UserDesktop, "username");
 | 
						|
	return FString(sentry_value_as_string(username));
 | 
						|
}
 | 
						|
 | 
						|
void SentryUserDesktop::SetIpAddress(const FString& ipAddress)
 | 
						|
{
 | 
						|
	if(!ipAddress.IsEmpty())
 | 
						|
	{
 | 
						|
		sentry_value_set_by_key(UserDesktop, "ip_address", sentry_value_new_string(TCHAR_TO_ANSI(*ipAddress)));
 | 
						|
	}
 | 
						|
	else
 | 
						|
	{
 | 
						|
		sentry_value_set_by_key(UserDesktop, "ip_address", sentry_value_new_string("{{auto}}"));
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
FString SentryUserDesktop::GetIpAddress() const
 | 
						|
{
 | 
						|
	sentry_value_t ip_address = sentry_value_get_by_key(UserDesktop, "ip_address");
 | 
						|
	return FString(sentry_value_as_string(ip_address));
 | 
						|
}
 | 
						|
 | 
						|
void SentryUserDesktop::SetData(const TMap<FString, FString>& data)
 | 
						|
{
 | 
						|
	sentry_value_set_by_key(UserDesktop, "data", SentryConvertorsDesktop::StringMapToNative(data));
 | 
						|
}
 | 
						|
 | 
						|
TMap<FString, FString> SentryUserDesktop::GetData()
 | 
						|
{
 | 
						|
	sentry_value_t data = sentry_value_get_by_key(UserDesktop, "data");
 | 
						|
	return SentryConvertorsDesktop::StringMapToUnreal(data);
 | 
						|
}
 | 
						|
 | 
						|
#endif |