public void SwitchUser(AuthIdentity authIdentity, Action onSuccess, Action <GetSocialError> onFailure) { var request = new THSdkAuthRequest { AppId = _stateController.AppId, SessionProperties = _stateController.SuperProperties }; var identity = authIdentity.ToRpcModel(); LogRequest("switchUser", identity); WithHadesClient(client => { var user = client.getPrivateUserByIdentity(SessionId, identity); request.UserId = user.Id; request.Password = user.Password; var response = client.authenticateSdk(request); Ui(() => { LogResponse("switchUser", response); _stateController.SaveSession(response.SessionId, response.User); onSuccess.SafeCall(); }); }, onFailure); }
private void Init(THSdkAuthRequest request) { LogRequest("authenticateSdk", request); WithHadesClient(client => { THSdkAuthResponseAllInOne response = null; while (response == null) { try { try { response = client.authenticateSdkAllInOne(new THSdkAuthRequestAllInOne { SdkAuthRequest = request, ProcessAppOpenRequest = new THProcessAppOpenRequest { } }); } catch (THErrors errors) { GetSocialLogs.W(errors.Errors.First().ErrorMsg); throw errors; // if GetSocial exception - rethrow } } catch (Exception exception) { // if system exception - try again Ui(() => GetSocialLogs.W("Failed to init GetSocial, retry in 1 second, exception: " + exception)); // wait for 1 sec Thread.Sleep(1000); // unity doesn't stop background threads, so we have to check a state of app if (!EngineUtils.IsApplicationRunning()) { return; } } } Ui(() => { LogResponse("authenticateSdk", response); _stateController.Initialized(response, request.AppId); #if !UNITY_EDITOR TrackAnalyticsEvent(new AnalyticsEvent { Name = AnalyticsEventDetails.AppSessionStart, CreatedAt = ApplicationStateListener.Instance.AppStartTime }); #endif }); }, requireInitialization: false); }
public void Read(TProtocol iprot) { iprot.IncrementRecursionDepth(); try { TField field; iprot.ReadStructBegin(); while (true) { field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 1: if (field.Type == TType.Struct) { SdkAuthRequest = new THSdkAuthRequest(); SdkAuthRequest.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 2: if (field.Type == TType.Struct) { ProcessAppOpenRequest = new THProcessAppOpenRequest(); ProcessAppOpenRequest.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; default: TProtocolUtil.Skip(iprot, field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); } finally { iprot.DecrementRecursionDepth(); } }
public void ResetUser(Action onSuccess, Action <GetSocialError> onError) { var request = new THSdkAuthRequest { AppId = _stateController.AppId, SessionProperties = _stateController.SuperProperties }; LogRequest("authenticateSdk", request); WithHadesClient(client => { var response = client.authenticateSdk(request); Ui(() => { LogResponse("authenticateSdk", response); _stateController.SaveSession(response.SessionId, response.User); onSuccess.SafeCall(); }); }, onError); }