Subversion Repositories cheapmusic

Rev

Blame | Last modification | View Log | RSS feed

<?php

/***************************************************************************
 *   Copyright (C) 2009-2011 by Geo Varghese(www.seopanel.in)      *
 *   sendtogeo@gmail.com                                                                                                   *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/

include_once(SP_CTRLPATH . "/googleapi.ctrl.php");

# class defines all connection functions
class ConnectionController extends Controller {
        
        var $sourceList =  array(
                'google' => 'GoogleAPIController',
        );
        
                
        /**
         * Function to display connections
         */
        function listConnections($info = ''){
                
                $userId = isLoggedIn();
                $sourceList = array();
                $userTokenCtrler = new UserTokenController();
                
                // loop through the list
                foreach ($this->sourceList as $name => $class ) {
                        
                        // check connection status
                        $tokenInfo = $userTokenCtrler->getUserToken($userId, $name);
                        
                        // if token exists
                        if (!empty($tokenInfo['id'])) {
                                $status = true;
                        } else {
                                $status = false;
                                
                                if (SP_DEMO) {
                                        $authUrlInfo = array('auth_url' => '#');
                                } else {
                                        $sourceCtrler = new $class();
                                        $authUrlInfo = $sourceCtrler->getAPIAuthUrl($userId);
                                }
                        }
                        
                        $sourceList[] = array('name' => $name, 'status' => $status, 'auth_url_info' => $authUrlInfo);
                }
                
                $this->set('list', $sourceList);
                $this->render('myaccount/connection_list');
        }
        
        /*
         * process connection return action
         */
        function processConnectionReturn($info) {
                
                $userId = isLoggedIn();
                $className = $this->sourceList[$info['category']];
                
                // if class existing for process
                if (!empty($className)) {
                        $sourceCtrler = new $className();
                        $ret = $sourceCtrler->createUserAuthToken($userId, $info['code']);
                        
                        // if token created successfull
                        if ($ret['status']) {
                                $this->set('successMsg', "Successfully connected to " . $info['category']);
                        } else {
                                $this->set('errorMsg', $ret['msg']);
                        }
                        
                } else {
                        $this->set('errorMsg', "Class not found to process requested action.");
                }
                
                $this->listConnections();
                
        }
        
        /*
         * process disconnection action
         */
        function processDisconnection($info) {
                $userId = isLoggedIn();$className = $this->sourceList[$info['category']];
                
                // if class existing for process
                if (class_exists($className)) {
                        $sourceCtrler = new $className();
                        $ret = $sourceCtrler->removeUserAuthToken($userId);
                        $this->set('successMsg', "Successfully disconnected from " . $info['category']);
                } else {
                        $this->set('errorMsg', "Class not found to process requested action.");
                }
                
                $this->listConnections();
        }
        
}
?>