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
|