Skip to content

Commit 81d8a86

Browse files
committed
Merge
2 parents 9f18c70 + bdc8628 commit 81d8a86

File tree

7 files changed

+25
-122
lines changed

7 files changed

+25
-122
lines changed

Source/Immutable/Private/Immutable/Actions/ImtblPassportConfirmCodeAsyncAction.cpp

Lines changed: 0 additions & 55 deletions
This file was deleted.

Source/Immutable/Private/Immutable/Actions/ImtblPassportConnectAsyncAction.cpp

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ void UImtblPassportConnectAsyncAction::Activate()
2222
{
2323
FString Err = "Connect failed due to missing world or world context object.";
2424
IMTBL_WARN("%s", *Err)
25-
Failed.Broadcast(Err, TEXT(""), TEXT(""), TEXT(""));
25+
Failed.Broadcast(Err);
2626
return;
2727
}
2828

@@ -35,29 +35,19 @@ void UImtblPassportConnectAsyncAction::DoConnect(TWeakObjectPtr<UImtblJSConnecto
3535
// Get Passport
3636
auto Passport = GetSubsystem()->GetPassport();
3737
// Run Connect
38-
Passport->Connect(UImmutablePassport::FImtblPassportResponseDelegate::CreateUObject(this, &UImtblPassportConnectAsyncAction::OnConnectCodeReady));
38+
Passport->Connect(UImmutablePassport::FImtblPassportResponseDelegate::CreateUObject(this, &UImtblPassportConnectAsyncAction::OnConnect));
3939
}
4040

4141

42-
void UImtblPassportConnectAsyncAction::OnConnectCodeReady(FImmutablePassportResult Result)
42+
void UImtblPassportConnectAsyncAction::OnConnect(FImmutablePassportResult Result)
4343
{
4444
if (Result.Success)
4545
{
46-
if (auto Data = FImmutablePassportConnectData::FromJsonString(Result.Message))
47-
{
48-
ConnectData = Data.GetValue();
49-
50-
CodeReady.Broadcast(TEXT(""), ConnectData.code, ConnectData.deviceCode, ConnectData.url);
51-
}
52-
else
53-
{
54-
IMTBL_WARN("Could not deserialize connect data.")
55-
Failed.Broadcast(Result.Message, TEXT(""), TEXT(""), TEXT(""));
56-
}
46+
Success.Broadcast(TEXT(""));
5747
}
5848
else
5949
{
60-
Failed.Broadcast(Result.Message, TEXT(""), TEXT(""), TEXT(""));
50+
Failed.Broadcast(Result.Message);
6151
}
6252
}
6353

Source/Immutable/Private/Immutable/ImmutablePassport.cpp

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,11 @@ void UImmutablePassport::Connect(const FImtblPassportResponseDelegate& ResponseD
157157
}
158158

159159

160-
void UImmutablePassport::ConfirmCode(const FString& DeviceCode, const FImtblPassportResponseDelegate& ResponseDelegate)
160+
void UImmutablePassport::ConfirmCode(const FString& DeviceCode, const float Interval, const FImtblPassportResponseDelegate& ResponseDelegate)
161161
{
162162
FImmutablePassportCodeConfirmRequestData Data;
163163
Data.deviceCode = DeviceCode;
164+
Data.interval = Interval;
164165
CallJS(
165166
ImmutablePassportAction::ConfirmCode,
166167
Data.ToJsonString(),
@@ -365,22 +366,28 @@ void UImmutablePassport::OnConnectResponse(FImtblJSResponse Response)
365366
{
366367
if (auto ResponseDelegate = GetResponseDelegate(Response))
367368
{
368-
auto ConnectData = FImmutablePassportConnectData::FromJsonObject(Response.JsonObject);
369-
370-
FString Msg;
371-
bool bSuccess = true;
369+
const auto ConnectData = FImmutablePassportConnectData::FromJsonObject(Response.JsonObject);
372370
if (!Response.success || !ConnectData || !ConnectData->code.Len())
373371
{
372+
FString Msg;
374373
IMTBL_LOG("Connect attempt failed.");
375374
if (Response.Error.IsSet())
375+
{
376376
Msg = Response.Error->ToString();
377-
bSuccess = false;
377+
}
378+
ResponseDelegate->ExecuteIfBound(FImmutablePassportResult{false, Msg});
379+
return;
378380
}
379-
else
381+
FString Err;
382+
FPlatformProcess::LaunchURL(*ConnectData->url, nullptr, &Err);
383+
if (!Err.Len())
380384
{
381-
Msg = ConnectData->ToJsonString();
385+
FString Msg = "Failed to connect to Browser: " + Err;
386+
IMTBL_ERR("%s", *Msg);
387+
ResponseDelegate->ExecuteIfBound(FImmutablePassportResult{false, Msg});
388+
return;
382389
}
383-
ResponseDelegate->ExecuteIfBound(FImmutablePassportResult{bSuccess, Msg});
390+
ConfirmCode(ConnectData->deviceCode, ConnectData->interval, ResponseDelegate.GetValue());
384391
}
385392
}
386393

Source/Immutable/Public/Immutable/Actions/ImtblPassportConfirmCodeAsyncAction.h

Lines changed: 0 additions & 38 deletions
This file was deleted.

Source/Immutable/Public/Immutable/Actions/ImtblPassportConnectAsyncAction.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class IMMUTABLE_API UImtblPassportConnectAsyncAction : public UImtblBlueprintAsy
1616
{
1717
GENERATED_BODY()
1818

19-
DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(FPassportConnectOutputPin, FString, ErrorMessage, FString, Code, FString, DeviceCode, FString, Url);
19+
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FPassportConnectOutputPin, FString, ErrorMessage);
2020

2121
public:
2222
UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject", BlueprintInternalUseOnly = "true"), Category = "Immutable")
@@ -28,10 +28,10 @@ class IMMUTABLE_API UImtblPassportConnectAsyncAction : public UImtblBlueprintAsy
2828
FImmutablePassportConnectData ConnectData;
2929

3030
void DoConnect(TWeakObjectPtr<class UImtblJSConnector> JSConnector);
31-
void OnConnectCodeReady(FImmutablePassportResult Result);
31+
void OnConnect(FImmutablePassportResult Result);
3232

3333
UPROPERTY(BlueprintAssignable)
34-
FPassportConnectOutputPin CodeReady;
34+
FPassportConnectOutputPin Success;
3535
UPROPERTY(BlueprintAssignable)
3636
FPassportConnectOutputPin Failed;
3737
};

Source/Immutable/Public/Immutable/ImmutablePassport.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ class IMMUTABLE_API UImmutablePassport : public UObject
127127
void ConnectSilent(const FImtblPassportResponseDelegate& ResponseDelegate);
128128
void Logout(const FImtblPassportResponseDelegate& ResponseDelegate);
129129
void Connect(const FImtblPassportResponseDelegate& ResponseDelegate);
130-
void ConfirmCode(const FString& DeviceCode, const FImtblPassportResponseDelegate& ResponseDelegate);
131130
void GetAddress(const FImtblPassportResponseDelegate& ResponseDelegate);
132131
void GetEmail(const FImtblPassportResponseDelegate& ResponseDelegate);
133132

@@ -149,6 +148,7 @@ class IMMUTABLE_API UImmutablePassport : public UObject
149148
void CallJS(const FString& Action, const FString& Data, const FImtblPassportResponseDelegate& ClientResponseDelegate, const FImtblJSResponseDelegate& HandleJSResponse, const bool bCheckInitialized = true);
150149
// Pulls the ResponseDelegate from the ResponseDelegates map and returns it
151150
TOptional<FImtblPassportResponseDelegate> GetResponseDelegate(const FImtblJSResponse& Response);
151+
void ConfirmCode(const FString& DeviceCode, const float Interval, const FImtblPassportResponseDelegate& ResponseDelegate);
152152

153153
void OnInitializeResponse(FImtblJSResponse Response);
154154
void OnCheckStoredCredentialsResponse(FImtblJSResponse Response);

Source/Immutable/Public/Immutable/ImmutableSubsystem.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ class IMMUTABLE_API UImmutableSubsystem : public UGameInstanceSubsystem
2222
friend class UImtblPassportHasStoredCredentialsAsyncAction;
2323
friend class UImtblPassportConnectSilentAsyncAction;
2424
friend class UImtblPassportConnectAsyncAction;
25-
friend class UImtblPassportConfirmCodeAsyncAction;
2625
friend class UImtblPassportLogoutAsyncAction;
2726
friend class UImtblPassportGetAddressAsyncAction;
2827
friend class UImtblPassportGetEmailAsyncAction;

0 commit comments

Comments
 (0)