Skip to content

Commit

Permalink
Temporarily cache token
Browse files Browse the repository at this point in the history
  • Loading branch information
magnesj committed Jun 13, 2024
1 parent b94a2b8 commit d97130d
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ SimpleDialog::SimpleDialog( QWidget* parent )
layout->addWidget( cancelButton );

setLayout( layout );

m_sumoConnector = nullptr;
}

//--------------------------------------------------------------------------------------------------
Expand All @@ -86,7 +88,17 @@ void SimpleDialog::createConnection()

m_sumoConnector = new RimSumoConnector( qApp, server, authority, scopes, clientId );

connect( m_sumoConnector, SIGNAL( tokenReady( const QString& ) ), this, SLOT( onTokenReady( const QString& ) ) );
connect( m_sumoConnector, &RimSumoConnector::tokenReady, this, &SimpleDialog::onTokenReady );

// get token from log first time the token is requested

QSettings settings;
auto bearerToken = settings.value( m_registryKeyBearerToken_DEBUG_ONLY ).toString();

if ( !bearerToken.isEmpty() )
{
m_sumoConnector->setToken( bearerToken );
}
}

//--------------------------------------------------------------------------------------------------
Expand All @@ -103,6 +115,8 @@ void SimpleDialog::onAuthClicked()
//--------------------------------------------------------------------------------------------------
void SimpleDialog::onAssetsClicked()
{
if ( !isTokenValid() ) return;

m_sumoConnector->requestAssets();
m_sumoConnector->assets();

Expand All @@ -114,17 +128,40 @@ void SimpleDialog::onAssetsClicked()
//--------------------------------------------------------------------------------------------------
void SimpleDialog::onCasesClicked()
{
if ( !isTokenValid() ) return;

m_sumoConnector->requestCasesForField( "Drogon" );

label->setText( "Requesting cases (see log for response" );
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool SimpleDialog::isTokenValid()
{
if ( !m_sumoConnector )
{
createConnection();
}

if ( m_sumoConnector->token().isEmpty() )
{
m_sumoConnector->requestToken();
}

return !m_sumoConnector->token().isEmpty();
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void SimpleDialog::onTokenReady( const QString& token )
{
RiaLogging::info( "Token ready: " + token );

QSettings settings;
settings.setValue( m_registryKeyBearerToken_DEBUG_ONLY, token );
}

void SimpleDialog::onOkClicked()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ class SimpleDialog : public QDialog
void onAssetsClicked();
void onCasesClicked();

bool isTokenValid();

private:
QLabel* label;
QPushButton* okButton;
Expand All @@ -53,7 +55,9 @@ class SimpleDialog : public QDialog
QPushButton* assetsButton;
QPushButton* casesButton;

RimSumoConnector* m_sumoConnector;
QPointer<RimSumoConnector> m_sumoConnector;

const QString m_registryKeyBearerToken_DEBUG_ONLY = "PrivateBearerToken";
};

//==================================================================================================
Expand Down
21 changes: 20 additions & 1 deletion ApplicationLibCode/ProjectDataModel/Sumo/RimSumoConnector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,22 @@ RimSumoConnector::~RimSumoConnector()
{
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSumoConnector::setToken( const QString& token )
{
m_token = token;
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimSumoConnector::token() const
{
return m_token;
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -238,7 +254,10 @@ void RimSumoConnector::parseAssets( QNetworkReply* reply )
m_assets.push_back( SumoAsset{ id, kind, fieldName } );
}

// emit casesFinished();
for ( auto a : m_assets )
{
RiaLogging::info( QString( "Asset: %1" ).arg( a.name ) );
}
}
}

Expand Down
3 changes: 3 additions & 0 deletions ApplicationLibCode/ProjectDataModel/Sumo/RimSumoConnector.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ class RimSumoConnector : public QObject
RimSumoConnector( QObject* parent, const QString& server, const QString& authority, const QString& scopes, const QString& clientId );
~RimSumoConnector() override;

void setToken( const QString& token );
QString token() const;

void requestCasesForField( const QString& fieldName );
void requestAssets();

Expand Down

0 comments on commit d97130d

Please sign in to comment.