example/LastFmAuthApp/src/sessionSP.cpp
author cgandhi
Tue, 12 Oct 2010 15:23:52 +0530
changeset 27 b3e1347ac96a
parent 26 83d6a149c755
permissions -rw-r--r--
Updating the information for test applications and results.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     1
/**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     2
* Copyright (c) 2010 Sasken Communication Technologies Ltd.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     3
* All rights reserved.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     4
* This component and the accompanying materials are made available
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     5
* under the terms of the "{License}"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     6
* which accompanies  this distribution, and is available
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     7
* at the URL "{LicenseUrl}".
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     8
*
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     9
* Initial Contributors:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    10
* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    11
*
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    12
* Contributors:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    13
* Siddhartha Chandra, Sasken Communication Technologies Ltd
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    14
* Description:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    15
* class to maintian session & all credential keys.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    16
*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    17
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    18
#include "sessionSP.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    19
#include "requestSP.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    20
#include <qfile.h>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    21
#include <QTimer>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    22
#include <qdebug.h>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    23
#include <keys.h>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    24
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    25
// global
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    26
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    27
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    28
static FBSession* sharedSession = NULL;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    29
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    30
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    31
// Static class functions
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    32
FBSession* FBSession::session()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    33
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    34
    return sharedSession;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    35
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    36
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    37
void FBSession::setSession(FBSession* aSession)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    38
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    39
    sharedSession = aSession;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    40
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    41
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    42
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    43
FBSession* FBSession::sessionForApplication ( const QString& aAppKey, const QString& aAppSecret, const QString& aSessionProxy)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    44
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    45
    FBSession* session = new FBSession ( aAppKey, aAppSecret, aSessionProxy );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    46
    return session;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    47
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    48
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    49
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    50
// instance public functions
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    51
FBSession::FBSession( const QString& aAppKey, const QString& aAppSecret, const QString& aGetSessionProxy ) :
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    52
        iApiKey (aAppKey),
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    53
        iApiSecret ( aAppSecret ),
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    54
        m_Client(new SmfCredMgrClient(this))	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    55
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    56
	Q_UNUSED(aGetSessionProxy)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    57
    if (!sharedSession)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    58
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    59
        sharedSession = this;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    60
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    61
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    62
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    63
FBSession::~FBSession()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    64
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    65
	if(m_Client){
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    66
		delete m_Client;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    67
		m_Client = NULL;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    68
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    69
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    70
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    71
const QString& FBSession::apiURL() const
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    72
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    73
    return kAPIRestURL;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    74
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    75
void FBSession::SaveToken (const QString& token )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    76
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    77
	iToken = token;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    78
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    79
void FBSession::SaveSession (const QString& session, const QString& name )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    80
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    81
	qDebug()<<"Inside FBSession::SaveSession";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    82
	qDebug()<<"token argument = "<<session;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    83
	iLastfmSessionKey = session;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    84
	iLastfmUserName = name;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    85
    save();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    86
    emit sessionDidLogin(session);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    87
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    88
bool FBSession::resume()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    89
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    90
    QString CMRegToken = iSettings.value("CMFlickrRegToken", "NA" ).toString();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    91
	QDateTime ExpiryTime = iSettings.value("FlckrExpiryTime","NA").toDateTime();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    92
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    93
	qDebug() << "CMRegToken = :" << CMRegToken;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    94
	qDebug() << "ExpiryTime = :" << ExpiryTime;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    95
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    96
	SmfAuthParams Params;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    97
	if(m_Client->AuthDataSet(CMRegToken,ExpiryTime,Params))
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    98
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    99
		QByteArray accessToken = Params.value("finalToken");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   100
       emit sessionDidLogin( accessToken );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   101
       return true;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   102
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   103
    return false;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   104
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   105
void FBSession::logout() {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   106
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   107
	iLastfmSessionKey.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   108
	iLastfmUserName.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   109
	iToken.clear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   110
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   111
        unsave();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   112
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   113
        emit sessionDidLogout();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   114
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   115
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   116
void FBSession::send (FBRequest* aRequest) {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   117
	qDebug()<<"Inside FBSession::send";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   118
    performRequest (aRequest, true);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   119
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   120
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   121
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   122
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   123
// instance private functions
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   124
void FBSession::save()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   125
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   126
	qDebug()<<"Inside FBSession::save()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   127
	qDebug()<<"Session Key= "<<iLastfmSessionKey;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   128
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   129
    SmfAuthParams Params;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   130
    Params.insert("ApiKey",kApiKey.toAscii());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   131
    Params.insert("ApiSecret",kApiSecret.toAscii());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   132
    Params.insert("ApiToken",iToken.toAscii());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   133
    Params.insert("SessionKey",iLastfmSessionKey.toAscii());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   134
    Params.insert("Name",iLastfmUserName.toAscii());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   135
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   136
    QList<QUrl> UrlList;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   137
    UrlList.append(QUrl(kAPIRestURL));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   138
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   139
    QStringList PluginList;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   140
    PluginList.append(QString("LastFmmusiceventplugin.qtplugin"));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   141
    PluginList.append(QString("LastFmmusicsearchplugin.qtplugin"));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   142
    PluginList.append(QString("LastFmmusicserviceplugin.qtplugin"));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   143
    PluginList.append(QString("LastFmplaylistserviceplugin.qtplugin"));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   144
    QString UID("0xE1D8C7D8");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   145
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   146
    //Currently Hardcoded with current time bcoz CM is not handling expiry time as '0' value
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   147
    QDateTime ExpirationDate = QDateTime::currentDateTime();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   148
    ExpirationDate.addYears(1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   149
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   150
    QString CMRegToken = m_Client->StoreAuthData(Params,ExpirationDate,UrlList,PluginList,UID,true);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   151
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   152
    if(CMRegToken.size()){
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   153
    	iSettings.setValue("CMLastFmRegToken", CMRegToken);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   154
    	iSettings.setValue("LastFmExpiryTime", ExpirationDate);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   155
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   156
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   157
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   158
void FBSession::unsave()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   159
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   160
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   161
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   162
bool FBSession::performRequest(FBRequest* aRequest, bool aEnqueue) {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   163
    // Stagger requests that happen in short bursts to prevent the server from rejecting
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   164
    // them for making too many requests in a short time
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   165
	Q_UNUSED(aEnqueue)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   166
	qDebug()<<"Inside FBSession::performRequest";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   167
        aRequest->connect();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   168
        return true;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   169
}