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.             *
 ***************************************************************************/

/**
 * Class defines all functions for managing user API
 * 
 * @author Seo panel
 *
 */
class UserAPI extends Seopanel{
        
        /**
         * the main controller to get details for api
         * @var Object
         */
        var $ctrler;
        
        function __construct() {
                include_once(SP_CTRLPATH . "/user.ctrl.php");
                $this->ctrler = new UserController();
        }

        /**
         * function to get user information 
         * @param Array $info                   The input details to process the api
         *              $info['id']                 The id of the user  - Mandatory
         * @return Array $returnInfo    Contains informations about user
         */
        function getUserInfo($info) {
                $userId = intval($info['id']);
                $returnInfo = array();
                
                // validate the user ifd and user info
                if (!empty($userId)) {
                        if ($userInfo = $this->ctrler->__getUserInfo($userId)) {
                                $userInfo['password'] = '';
                                $returnInfo['response'] = 'success';
                                $returnInfo['result'] = $userInfo;
                                return $returnInfo;
                        }
                }
                
                $returnInfo['response'] = 'Error';
                $returnInfo['error_msg'] = "The invalid user id provided";              
                return  $returnInfo;
        }
        
        /**
         * function to create user
         * @param Array $info                   The input details to process the api
         *              $info['username']               The username of the user        - Mandatory
         *              $info['password']               The password of the user        - Mandatory
         *              $info['first_name']             The first name f the user       - Mandatory
         *              $info['last_name']              The last name of user   - Optional
         *              $info['email']                  The user email  - Mandatory
         *              $info['type_id']                The user type id of user - default[2]   - Optional
         *              $info['status']                 The status of the user - default[1]     - Optional
         * @return Array $returnInfo    Contains details about the operation succes or not
         */
        function createUser($info) {
                $userInfo = $info;
                $userInfo['userName'] = $info['username'];
                $userInfo['firstName'] = $info['first_name'];
                $userInfo['lastName'] = $info['last_name'];
                $userInfo['confirmPassword'] = $userInfo['password'];
                $return = $this->ctrler->createUser($userInfo, false);
                
                // if user creation is success
                if ($return[0] == 'success') {
                        $returnInfo['response'] = 'success';
                        $returnInfo['result'] = $return[1];
                        $returnInfo['user_id'] = $this->ctrler->db->getMaxId('users');
                } else {
                        $returnInfo['response'] = 'Error';
                        $returnInfo['error_msg'] = $return[1];
                }
                
                return  $returnInfo;
                
        }
        
        /**
         * function to update user
         * @param Array $info                   The input details to process the api
         *              $info['id']                             The id of the user      - Mandatory
         *              $info['username']               The username of the user        - Optional
         *              $info['password']               The password of the user        - Optional
         *              $info['first_name']             The first name f the user       - Optional
         *              $info['last_name']              The last name of user   - Optional
         *              $info['email']                  The user email  - Optional
         *              $info['type_id']                The user type id of user        - Optional
         *              $info['status']                 The status of the user  - Optional
         * @return Array $returnInfo    Contains details about the operation succes or not
         */
        function updateUser($info) {
                
                $userId = intval($info['id']);
                
                // if user exists
                if ($userInfo = $this->ctrler->__getUserInfo($userId)) {
                        
                        $userInfo['oldName'] = $userInfo['username'];
                        $userInfo['oldEmail'] = $userInfo['email'];
                        
                        // loop through inputs
                        foreach ($info as $key => $val) {
                                $userInfo[$key] = $val;
                        }
                        
                        // updte user info
                        $userInfo['userName'] = $userInfo['username'];
                        $userInfo['firstName'] = $userInfo['first_name'];
                        $userInfo['lastName'] = $userInfo['last_name'];
                        $userInfo['confirmPassword'] = $userInfo['password'];
                        $return = $this->ctrler->updateUser($userInfo, false);
                        
                        // if user creation is success
                        if ($return[0] == 'success') {
                                $returnInfo['response'] = 'success';
                                $returnInfo['result'] = $return[1];
                        } else {
                                $returnInfo['response'] = 'Error';
                                $returnInfo['error_msg'] = $return[1];
                        }
                        
                } else {

                        $returnInfo['response'] = 'Error';
                        $returnInfo['error_msg'] = "The invalid user id provided";
                }
                
                return  $returnInfo;
                
        }
        
        /**
         * function to delete user
         * @param Array $info                           The input details to process the api
         *              $info['id']                                     The id of the user      - Mandatory
         * @return Array $returnInfo    Contains details about the operation success or not
         */
        function deleteUser($info) {
                
                $userId = intval($info['id']);
                
                // if user exists
                if ( ($userId != 1) && $userInfo = $this->ctrler->__getUserInfo($userId)) {
                        
                        // update user call as api call
                        $this->ctrler->__deleteUser($userId);
                        $returnInfo['response'] = 'success';
                        $returnInfo['result'] = "Successfully deleted user";
                        
                } else {
        
                        $returnInfo['response'] = 'Error';
                        $returnInfo['error_msg'] = "The invalid user id provided";
                }
        
                return  $returnInfo;
                
        }
        
        /**
         * function added by Rex, 2020Media.com
         * function to get user id from username
         * @param Array $info                   The input details to process the api
         *              $info['username']       The username of the user  - Mandatory
         * @return Array $returnInfo    Contains id of user
         */
        function getUserName($info) {
                
                $username = $info['username'];
                $returnInfo = array();
        
                // validate the user ifd and user info
                if (!empty($username)) {
                        if ($userInfo = $this->ctrler->__checkUserName($username)) {
                                $returnInfo['response'] = 'success';
                                $returnInfo['result'] = $userInfo;
                                return $returnInfo;
                        }
                }
        
                $returnInfo['response'] = 'Error';
                $returnInfo['error_msg'] = "Invalid username provided";
                return  $returnInfo;
        }
        
}
?>