App42 Cloud API

PHP cloud SDK

User

Creates User for the App. App42 Cloud API's provides a complete User Management for any Mobile or Web App. It supports User registration, retrieval, state management e.g. lock, delete and Authentication.

Along with User management the platform provides API's for persistent SessionManagement

In order to use the various functions available under a particular API, a developer will have to create an instance of ServiceAPI by passing the apiKey and the secretKey which has been received while creating an app.

$api = new ServiceAPI("<API_KEY>","<SECRET_KEY>");

After initialization, developer needs to call the buildXXXService method on ServiceAPI instance to get the instance of the particular API that you wish to build. For example, To build an instance of UserService, buildUserService() method needs to be called.

	 $userService = $api->buildUserService();

Once the API instance has been retrieved, You are ready to use the functions available for that particular API.

The methods available under a particular API will return the domain object (like User in this case) as a response which will have the accessor / mutator to access the available properties for that object. You can get the response in the form of JSON as well. We have provided the JSON response with every function detail which can be retrieved by calling the toString() on the returned object.

$userName = "Nick";
$pwd = "********";
$emailId = "nick@gmail.com";
		
$user = $userService->createUser($userName, $pwd, $emailId); /* returns the User object. */
print_r("userName is " . $user->getUserName());
print_r("emailId is " . $user->getEmail());
$jsonResponse = $user->toString(); /* returns the response in JSON format. */                         

The functions available under User API can throw some exceptions in abnormal conditions. Example of the same has been given below.

E.g. If App developer is creating a user with username which is already in database, the function will throw the App42Exception (as shown below) with message as "Bad Request" and the appErrorCode as "2001" and the details as "The request parameters are invalid. Username '<userName>' already exists".

$userName = "Nick";
$pwd = "********";
$emailId = "nick@gmail.com";

try{
	$user = $userService->createUser($userName, $pwd, $emailId);
} catch(App42Exception $ex) {
	$appErrorCode =$ex->getAppErrorCode();
	$httpErrorCode = $ex->getHttpErrorCode();
	if($appErrorCode == 2001)
{
    // Handle here for Bad Request (User by the name '<userName>' does not exist.)
}
    else if($appErrorCode  == 2005){
    // Handle here for Bad Request (The request parameters are invalid. User with emailId '<emailId>' already exists.)
}
    else if($appErrorCode == 1401){
    // handle here for Client is not authorized
}
    else if($appErrorCode == 1500){
    // handle here for Internal Server Error
}
   $jsonText = $ex->getMessage(); /* returns the Exception text in JSON format. (as shown below)*/	
}
{
    "app42Fault": {
        "httpErrorCode": 400,
        "appErrorCode": 2001,
        "message": "Bad Request",
        "details": "The Request parameters are invalid. Username 'Nick' already Exists"
    }
}
							

Below are the HTTP Error Codes and their description, the function under the User API can throw.

/*
1400 - BAD REQUEST - The Request parameters are invalid
1401 - UNAUTHORIZED - Client is not authorized
1500 - INTERNAL SERVER ERROR - Internal Server Error. Please try again	or. Please try again	
*/		

Below are the Application Error Codes and their description, the function under the User API can throw.

/*
2000 - NOT FOUND - User by the name '<userName>' does not exist.
2001 - BAD REQUEST - The request parameters are invalid. Username '<userName>' already exists. 
2002 - NOT FOUND - UserName/Password did not match. Authentication Failed.
2003 - BAD REQUEST - Old Password is not matching for user '<userName>'.  
2004 - NOT FOUND - User with the emailId '<emailId>' does not exist.
2005 - BAD REQUEST - The request parameters are invalid. User with emailId '<emailId>' already exists.
2006 - NOT FOUND - Users do not exist.	
2007 - NOT FOUND - The number of users are less than the specified offset : <offset>.
2008 - NOT FOUND - The number of locked users are less than the specified offset : <offset>.
2009 - NOT FOUND - Users with the role '<role>' do not exist.
2010 - NOT FOUND - No role found for the user '<userName>'.
2011 - NOT FOUND - Role '<role>' for the user '<userName>' does not exist.
2012 - NOT FOUND - Roles for the user '<userName>' do not exist.
*/					

Various functions available under User API has been explained below.

function createUser($userName, $pwd, $emailId)

Create user for the App.

Parameters:

userName - UserName which should be unique for the App
pwd - Password for the User
emailId - Email address of the user

Returns:

The created User Object.

Response: User Object

Exception:

This method throws following exception.
/*
2001 - BAD REQUEST - The request parameters are invalid. Username '<userName>' already exists.
2005 - BAD REQUEST - TThe request parameters are invalid. User with emailId '<emailid>' already exists.
*/
For more details click Exception
$userName = "Nick";
$pwd = "********";
$emailId = "nick@gmail.com";
                         
$user = $userService->createUser($userName, $pwd, $emailId); /* returns the User object. */
print_r("userName is " . $user->getUserName());
print_r("emailId is " . $user->getEmail());
$jsonResponse = $user->toString(); /* returns the response in JSON format. (as shown below)*/
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick",
                    "email": "nick@gmail.com"
                }
            }
        }
    }
}
                                        
function createUser($userName, $pwd, $emailId, $roleList)

Create User for the App.

Parameters:

userName - UserName which should be unique for the App
pwd - Password for the User
emailId - Email address of the user
roleList - List of roles to be assigned to User

Returns:

The created User Object.

Response: User Object

Exception:

This method throws following exception.
/*
2001 - BAD REQUEST - The request parameters are invalid. Username '<userName>' already exists.
2005 - BAD REQUEST - The request parameters are invalid. User with emailId '<emailid>' already exists.
*/ 		  
        
For more details click Exception
$userName = "Nick";
$pwd = "*******";
$emailId = "nick@gmail.com";
$roleList = array();
array_push($roleList, "Admin");
array_push($roleList, "Manager");
array_push($roleList, "Programmer");
array_push($roleList, "Tester");
						
$user = $userService->createUser($userName,$pwd,$emailId,$roleList); /* returns the User object. */
print_r("userName is " . $user.getUserName());
print_r("emailId is " . $user.getEmail()); 
$userRoleList = $user->getRoleList();
foreach($userRoleList as $roles)
{
print_r("Role is " . $roles); 
}
$jsonResponse = $user->toString(); /* returns the response in JSON format. (as shown below)*/
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick",
                    "email": "nick@gmail.com",
                    "role": [
                        "Admin",
                        "Manager",
                        "Programmer",
                        "Tester"
                    ]
                }
            }
        }
    }
}													
function assignRoles($userName, $roleList)

Assign Roles for the App

Parameters:

userName - UserName which should be unique for the App
roleList - List of roles to be assigned to User

Returns:

The created User Object.

Response: User Object

Exception:

This method throws following exception.
/*
2000 - NOT FOUND - User by the name '<userName>' does not exist.
*/
For more details click Exception
$userName = "Nick";
$roleList = array();
array_push($roleList, "Admin");
array_push($roleList, "Manager");
array_push($roleList, "Programmer");
array_push($roleList, "Tester");

$user = $userService->assignRoles($userName,$roleList); /* returns the User object. */
print_r("userName is" . $user->getUserName());
$userRoleList = $user->getRoleList();
foreach($userRoleList as $roles)
{
print_r("Role is " . $roles); 
}
$jsonResponse = $user->toString(); /* returns the response in JSON format. (as shown below)*/  
		
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick",
                    "role": [
                        "Admin",
                        "Manager",
                        "Programmer",
                        "Tester"
                    ]
                }
            }
        }
    }
}													
function getRolesByUser($userName)

Get Roles based on userName

Parameters:

userName - UserName which should be unique for the App

Returns:

User Object

Response: User Object

Exception:

This method throws following exception.
/*
2000 - NOT FOUND - User by the name '<userName>' does not exist.
2010 - NOT FOUND - No role found for the user '<userName>'.
*/ 		  
        
For more details click Exception
$userName = "Nick";

$user = $userService->getRolesByUser($userName); /* returns the User object. */
print_r("userName is " . $user->getUserName());
print_r("emailId is " . $user->getEmail());
$userRoleList = $user->getRoleList();
$profile = $user->getProfile();  
print_r("firstName" . $profile->getFirstName();    
$jsonResponse = $user->toString(); /* returns the response in JSON format. (as shown below)*/ 
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick",
                    "email": "nick@gmail.com",
                    "role": [
                        "Admin",
                        "Manager",
                        "Programmer",
                        "Tester"
                    ],
                    "accountLocked": false,
                    "profile": {
                        "firstName": "Nick",
                        "lastName": "Gill",
                        "sex": "Male",
                        "dateOfBirth": "2012-12-11T18:30:00.000Z",
                        "mobile": "+95890123457",
                        "officeLandLine": "+1-1800-111-999",
                        "homeLandLine": "+1-1800-877-453",
                        "line1":"Line1",
                        "line2":"Line2",
                        "city": "Tulsa",
                        "state":"Oklahoma",
                        "pincode":"74193",
                        "country":"USA"
                    }
                }
            }
        }
    }
}													
function getUsersByRole($role)

Get Users based on Role

Parameters:

role - Role which should be unique for the App

Returns:

List of User Object for that particular role.

Response: User Object

Exception:

This method throws following exception.
/*
2009 - NOT FOUND - Users with the role '<role>' do not exist.
*/ 		  
        
For more details click Exception
$role = "Admin";

$userList = $userService->getUsersByRole($role); /* returns the User object. */
foreach($userList as $user)
{  
print_r("userName is " . $user->getUserName());
print_r("emailId is " . $user->getEmail()); 
$profile = $user->getProfile();  
print_r("firstName is" . $profile->getFirstName());
print_r("userRoleList is" . $user->getRoleList()); 
} 
$jsonResponse = $user->toString(); /* returns the response in JSON format. (as shown below)*/   
  		
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": [
                    {
                        "userName": "Nick",
                        "email": "nick@gmail.com",
                        "role": "Admin",
                        "accountLocked": false,
                        "profile": {
                            "firstName": "Nick",
                            "lastName": "Gill",
                            "sex": "Male",
                            "dateOfBirth": "2012-12-11T18:30:00.000Z",
                            "mobile": "+95890123457",
                            "officeLandLine": "+1-1800-111-999",
                            "homeLandLine": "+1-1800-877-453",
                            "line1": "300 Oxford Street",
                            "line2": "W1A 1EX ",
                            "city": "Tulsa",
                            "state": "Oklahoma",
                            "pincode": "74193",
                            "country": "USA"
                        }
                    },
                    {
                        "userName": "Allen Hill",
                        "email": "allenHill@gmail.com",
                        "role": "Admin",
                        "accountLocked": false,
                        "profile": {
                            "firstName": "Allen",
                            "lastName": "Hill",
                            "sex": "Male",
                            "dateOfBirth": "2012-12-11T18:30:00.000Z",
                            "mobile": "+95890123457",
                            "officeLandLine": "+1-1800-111-999",
                            "homeLandLine": "+1-1800-877-453",
                            "line1": "300 Oxford Street2",
                            "line2": "W1A 1EX 2",
                            "city": "Tulsa",
                            "state": "Oklahoma",
                            "pincode": "74193",
                            "country": "USA"
                        }
                    }
                ]
            }
        }
    }
}
function getUser($userName)

GetUser Details for the users.

Parameters:

userName - UserName which should be unique for the App

Returns:

User Object

Response: User Object

Exception:

This method throws following exception.
/*
2000 - NOT FOUND - User by the name '<userName>' does not exist.

*/ 		  
        
For more details click Exception
$userName = "Nick";

$user = $userService->getUser($userName); /* returns the User object. */
print_r("userName is" . $user->getUserName());
print_r("emailId is" . $user->getEmail());
$profile = $user->getProfile();
print_r("firstName" . $profile->getFirstName());
$jsonResponse = $user->toString(); /* returns the response in JSON format. (as shown below)*/
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick",
                    "email": "nick@gmail.com",
                    "accountLocked": false,
                    "profile": {
                        "firstName": "Nick",
                        "lastName": "Gill",
                        "sex": "Male",
                        "dateOfBirth": "2012-12-11T18:30:00.000Z",
                        "mobile": "+95890123457",
                        "officeLandLine": "+1-1800-111-999",
                        "homeLandLine": "+1-1800-877-453",
                        "line1": "300 Oxford Street",
                        "line2": "W1A 1EX ",
                        "city": "Tulsa",
                        "state": "Oklahoma",
                        "pincode": "74193",
                        "country": "USA"
                    }
                }
            }
        }
    }
} 
                                            
function getAllUsers()

Gets All users details.

Parameters:

N/A

Returns:

The List that contains all User Object.

Response: User Object

Exception:

This method throws following exception.
/*
2006 - NOT FOUND - Users do not exist.
*/ 		  
        
For more details click Exception
$userList = $userService->getAllUsers(); /* returns the list of User objects. */
foreach( $userList as $user )
{
print_r("userName is " . $user->getUserName());
print_r("emailId is " .  $user->getEmail()); 
$profile = $user->getProfile();
print_r("firstName is " . $profile->getFirstName();
}
$jsonResponse = $userList->toString(); /* returns the response in JSON format. (as shown below)*/
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": [
                    {
                        "userName": "Nick",
                        "email": "nick@gmail.com",
                        "accountLocked": false,
                        "profile": {
                            "firstName": "Nick",
                            "lastName": "Gill",
                            "sex": "Male",
                            "dateOfBirth": "2012-12-11T18:30:00.000Z",
                            "mobile": "+95890123457",
                            "officeLandLine": "+1-1800-111-999",
                            "homeLandLine": "+1-1800-877-453",
                            "line1": "300 Oxford Street",
                            "line2": "W1A 1EX ",
                            "city": "Tulsa",
                            "state": "Oklahoma",
                            "pincode": "74193",
                            "country": "USA"
                        }
                    },
                    {
                        "userName": "Alfred",
                        "email": "Alfred@gmail.com",
                        "accountLocked": false,
                        "profile": {
                            "firstName": "Alfred",
                            "lastName": "Manistra",
                            "sex": "Male",
                            "dateOfBirth": "2012-12-11T18:30:00.000Z",
                            "mobile": "+95890123457",
                            "officeLandLine": "+1-1800-111-999",
                            "homeLandLine": "+1-1800-877-453",
                            "line1": "300 Oxford Street2",
                            "line2": "W1A 1EX 2",
                            "city": "London",
                            "state": "State",
                            "pincode": "120981",
                            "country": "London"
                        }
                    }
                ]
            }
        }
    }
}
                                            
function getAllUsersCount()

Gets the count of all the users

Parameters:

N/A

Returns:

The count of all User exists

Response: App42Response Object

For more details click Exception
$response = $userService->getAllUsersCount(); /* returns the App42Response objects. */
$success = $response->isResponseSuccess();
$totalRecords = $response->getTotalRecords();
$jsonResponse = $response->toString(); /* returns the response in JSON format. (as shown below)*/ 
											
{
    "app42": {
        "response": {
            "success": true,
            "totalRecords": 3
        }
    }
}									
function getAllUsers($max, $offset)

Gets All users By Paging

Parameters:

max - Maximum number of records to be fetched
offset - From where the records are to be fetched

Returns:

The List that contains all User Object

Response: User Object

Exception:

This method throws following exception.
/*
2007 - NOT FOUND - The number of users are less than the specified offset : <offset>.
*/ 		  
        
For more details click Exception
$max = 1;
$offset = 0 ;
						
$userList = $userService->getAllUsers($max,$offset); /* returns the list of User objects. */
foreach($userList as $user)
{
print_r("userName is " . $user->getUserName());
print_r("emailId is " . $user->getEmail()); 
$profile = $user->getProfile(); 
print_r("firstName is " . $profile->getFirstName();
}  
$jsonResponse = $userList->toString(); /* returns the response in JSON format. (as shown below)*/ 
		
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick ",
                    "email": "nick@gmail.com",
                    "accountLocked": false,
                    "profile": {
                        "firstName": "Nick",
                        "lastName": "Gill",
                        "sex": "Male",
                        "dateOfBirth": "2012-12-11T18:30:00.000Z",
                        "mobile": "+95890123457",
                        "officeLandLine": "+1-1800-111-999",
                        "homeLandLine": "+1-1800-877-453",
                        "line1": "300 Oxford Street",
                        "line2": "W1A 1EX ",
                        "city": "Tulsa",
                        "state": "Oklahoma",
                        "pincode": "74193",
                        "country": "USA"
                    }
                }
            }
        }
    }
}								
       			   
function getUserByEmailId($emailId)

Gets user details based on Email Id.

Parameters:

emailId - EmailId of the user to be retrieved

Returns:

User Object

Response: User Object

Exception:

This method throws following exception.
/*
2004 - NOT FOUND - User with the emailId '<emailId>' does not exist.
*/ 		  
        
For more details click Exception
$emailId = "nick@gmail.com";

$user = $userService->getUserByEmailId($emailId); /* returns the User object. */
print_r("userName is" . $user->getUserName());
print_r("emailId is" . $user->getEmail());
$profile = $user->getProfile();
print_r("firstName is" . $profile->getFirstName();

$jsonResponse = $user->toString(); /* returns the response in JSON format. (as shown below)*/ 
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick",
                    "email": "nick@gmail.com",
                    "accountLocked": false,
                    "profile": {
                        "firstName": "Nick",
                        "lastName": "Gill",
                        "sex": "Male",
                        "dateOfBirth": "2012-12-11T18:30:00.000Z",
                        "mobile": "+95890123457",
                        "officeLandLine": "+1-1800-111-999",
                        "homeLandLine": "+1-1800-877-453",
                        "line1": "300 Oxford Street2",
                        "line2": "W1A 1EX 2",
                        "city": "London",
                        "state": "State",
                        "pincode": "120981",
                        "country": "London"
                    }
                }
            }
        }
    }
}
                                            
function getLockedUsers()

Gets All the locked users details.

Parameters:

N/A

Returns:

The List that contains locked User Objects

Response: User Object

Exception:

This method throws following exception.
/*
2006 - NOT FOUND - Users do not exist.
*/ 		  
        
For more details click Exception
$userList = $userService->getLockedUsers(); /* returns the list of locked User objects. */
foreach( $userList as $user )
{
print_r("userName is" . $user->getUserName();
print_r("emailId is" . $user->getEmail();
$profile = $user->getProfile();
print_r("firstName is" . $profile->getFirstName();
}
$jsonResponse = $userList->toString(); /* returns the response in JSON format. (as shown below)*/ 
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": [
                    {
                        "userName": "Nick ",
                        "email": "nick@gmail.com",
                        "accountLocked": true,
                        "profile": {
                            "firstName": "Nick ",
                            "lastName": "Gill",
                            "sex": "Male",
                            "dateOfBirth": "2012-12-11T18:30:00.000Z",
                            "mobile": "+95890123457",
                            "officeLandLine": "+1-1800-111-999",
                            "homeLandLine": "+1-1800-877-453",
                            "line1": "300 Oxford Street",
                            "line2": "W1A 1EX ",
                            "city": "Tulsa",
                            "state": "Oklahoma",
                            "pincode": "74193",
                            "country": "USA"
                        }
                    },
                    {
                        "userName": "Billy",
                        "email": "billy@gmail.com",
                        "accountLocked": true,
                        "profile": {
                            "firstName": "Billy",
                            "lastName": "Bouden",
                            "sex": "Male",
                            "dateOfBirth": "2012-12-11T18:30:00.000Z",
                            "mobile": "+95890123457",
                            "officeLandLine": "+1-1800-111-999",
                            "homeLandLine": "+1-1800-877-453",
                            "line1": "300 Oxford Street2",
                            "line2": "W1A 1EX 2",
                            "city": "London",
                            "state": "State",
                            "pincode": "120981",
                            "country": "London"
                        }
                    }
                ]
            }
        }
    }
}
function getLockedUsersCount()

Gets the count of all the locked users

Parameters:

N/A

Returns:

The count of locked User exists

Response: App42Response Object

For more details click Exception
$response = $userService->getLockedUsersCount(); /* returns the App42Response objects. */
$success = $response->isResponseSuccess();
$totalRecords = $response->getTotalRecords();
$jsonResponse = $response->toString(); /* returns the response in JSON format. (as shown below)*/
{
    "app42": {
        "response": {
            "success": true,
            "totalRecords": 3
        }
    }
}										
function getLockedUsers($max, $offset)

Gets All the locked users details By paging.

Parameters:

max - Maximum number of records to be fetched
offset - From where the records are to be fetched

Returns:

The List that contains locked User Objects

Response: User Object

Exception:

This method throws following exception.
/*
2008 - NOT FOUND - The number of locked users are less than the specified offset : <offset>.
*/ 		  
        
For more details click Exception
$max = 1;
$offset = 0;

$userList = $userService->getLockedUsers($max,$offset); /* returns the list of locked User objects. */
foreach($userList as $user)
{  
print_r("userName is" . $user->getUserName());  
print_r("emailId is" . $user->getEmail());
$profile = $user->getProfile();   
print_r("firastName is" .$profile->getFirstName());  
} 
$jsonResponse = $userList->toString(); /* returns the response in JSON format. (as shown below)*/ 
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick ",
                    "email": "nick@gmail.com",
                    "accountLocked": true,
                    "profile": {
                        "firstName": "Nick ",
                        "lastName": "Gill",
                        "sex": "Male",
                        "dateOfBirth": "2012-12-11T18:30:00.000Z",
                        "mobile": "+95890123457",
                        "officeLandLine": "+1-1800-111-999",
                        "homeLandLine": "+1-1800-877-453",
                        "line1": "300 Oxford Street",
                        "line2": "W1A 1EX ",
                        "city": "Tulsa",
                        "state": "Oklahoma",
                        "pincode": "74193",
                        "country": "USA"
                    }
                }
            }
        }
    }
}
function getUsersByProfileData($profileData)

Get Users based on Profile Data.

Parameters:

profileData - Profile Data key/value for which Users need to be retrieved.

Returns:

List of User Object for the specified profile data

Response: User Object

Exception:

This method throws following exception.

/*
2006 - NOT FOUND - Users do not exist.
*/ 		        
For more details click Exception
$userName = "Nick";						
$pwd = "********";
$emailId = "nick@gmail.com";
					
$createUser = $userService->createUser($userName, $pwd, $emailId);					
$profileData = new Profile($createUser);
$profileData->setFirstName("Nick");
$profileData->setLastName("Gill");
$createProfile = $userService->createOrUpdateProfile($createUser);
$userList = $userService->getUsersByProfileData($profileData); /* returns the list of User objects. */
for($userList as $user)
{
print_r("UserName is " . $user->getUserName());
print_r("EmailId is " .  $user->getEmail());
}
$jsonResponse = $userList->toString(); /* returns the response in JSON format. (as shown below)*/   
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": [
                    {
                        "userName": "Nick",
                        "email": "nick@gmail.com",
                        "accountLocked": false,
                        "profile": {
                            "firstName": "Nick",
                            "lastName": "Gill",
                            "sex": "Male",
                            "dateOfBirth": "2012-12-11T18:30:00.000Z",
							"mobile": "+95890123457",
							"officeLandLine": "+1-1800-111-999",
							"homeLandLine": "+1-1800-877-453",
							"line1": "300 Oxford Street",
							"line2": "W1A 1EX ",
							"city": "Tulsa",
							"state": "Oklahoma",
							"pincode": "74193",
							"country": "USA"
                        }
                    },
                    {
                        "userName": "Billy",
                        "email": "billy@gmail.com",
                        "accountLocked": false,
                        "profile": {
                            "firstName": "Billy",
                            "lastName": "Bouden",
                            "sex": "Male",
                            "dateOfBirth": "2012-12-11T18:30:00.000Z",
                            "mobile": "+95890123457",
                            "officeLandLine": "+1-1800-111-999",
                            "homeLandLine": "+1-1800-877-453",
                            "line1": "300 Oxford Street2",
                            "line2": "W1A 1EX 2",
                            "city": "London",
                            "state": "State",
                            "pincode": "120981",
                            "country": "London"
                        }
                    }
                ]
            }
        }
    }
}
function resetUserPassword($userName,$pwd)

Updates the User based on userName. Note: Only email can be updated.
Username cannot be updated.

Parameters:

userName - UserName which should be unique for the App
password - new password reset by user

Returns:

App42Response Object

Response: App42Response Object

Exception:

This method throws following exception.
/*
2000 - NOT FOUND - User by the name '<userName>' does not exist.

*/ 		  
        
For more details click Exception
$userName = "Nick";
$pwd ="*******";	
$response = $userService->resetUserPassword($userName,$pwd); /* returns the App42Response object. */
$success = $response->isResponseSuccess();
$jsonResponse = $response->toString(); /* returns the response in JSON format. (as shown below)*/ 
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick"
                }
            }
        }
    }
}
function revokeRole($userName, $role)

Revokes the specified role from the user.

Parameters:

userName - UserName which should be unique for the App
role - Role for which User needs to be retrieved

Returns:

App42Response Object if user deleted successfully

Response: App42Response Object

Exception:

This method throws following exception.
/*
2000 - NOT FOUND - User by the name '<userName>' does not exist.
2011 - NOT FOUND - Role '<role>' for the user '<userName>' does not exist.
*/ 			  
        
For more details click Exception
$userName = "Nick";
$role = "admin";	

$response = $userService->revokeRole($userName,$role); /* returns the App42Response object. */
$success = $response->isResponseSuccess();
$jsonResponse = $response->toString(); /* returns the response in JSON format. (as shown below)*/ 
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick",
                    "role": "Admin"
                }
            }
        }
    }
}
function revokeAllRoles($userName)

Revokes the specified role from the user.

Parameters:

userName - UserName which should be unique for the App
role - Role for which User needs to be retrieved

Returns:

App42Response Object if user deleted successfully

Response: App42Response Object

Exception:

This method throws following exception.
/*
2000 - NOT FOUND - User by the name '<userName>' does not exist.
2012 - Not Found - Roles for the user '<userName>' do not exist.
*/ 				  
        
For more details click Exception
String userName = "Nick";

$response = $userService->revokeAllRoles($userName); /* returns the App42Response object. */
$success = $response->isResponseSuccess();
$jsonResponse = $response->toString(); /* returns the response in JSON format. (as shown below)*/ 
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "testingUser111343043253822",
                    "role": [
                        {
                            "role": "Admin"
                        },
                        {
                            "role": "Manager"
                        },
                        {
                            "role": "Programmer"
                        },
                        {
                            "role": "Tester"
                        }
                    ]
                }
            }
        }
    }
}
function updateEmail($userName, $emailId)

Parameters:

userName - UserName which should be unique for the App
emailId - Email address of the user

Returns:

updated User Object

Response: User Object

Exception:

This method throws following exception.
/*
2000 - NOT FOUND - User by the name '<userName>' does not exist.
*/ 		  
        
For more details click Exception
$userName = "Nick";	
$emailId = "almighty@gmail.com";
						
$user = $userService->updateEmail($userName, $emailId); /* returns the updated User object. */
print_r("userName is" . $user->getUserName());
print_r("emailId is" . $user->getEmail());
$jsonResponse = $user->toString(); /* returns the response in JSON format. (as shown below)*/
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick",
                    "email": "almighty@gmail.com"
                }
            }
        }
    }
}
                                            
function deleteUser($userName)

Deletes a particular user based on userName.

Parameters:

userName - UserName which should be unique for the App

Returns:

App42Response Object if user deleted successfully

Response: App42Response Object

Exception:

This method throws following exception.
/*
2000 - NOT FOUND - User by the name '<userName>' does not exist.
*/ 		  
        
For more details click Exception
$userName = "Nick";	
					
$response = $userService->deleteUser($userName); /* returns the App42Response object. */
$success = $response->isResponseSuccess();
$jsonResponse = $response->toString(); /* returns the response in JSON format. (as shown below)*/
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick"
                }
            }
        }
    }
}
                                            
function createOrUpdateProfile($user)

Creates or Updates User Profile.
Note: First time when the Profile for the user is created. In future calls user information will be updated.

Parameters:

user - User Profile Data object which has the profile information

Returns:

User Object with updated Profile information

Response: User Object

Exception:

This method throws following exception.
/*
2000 - NOT FOUND - User by the name '<userName>' does not exist.
*/ 		  
        
For more details click Exception
$userName = "Nick";						
$pwd = "********";
$emailId = "nick@gmail.com";					
					
$userObj = $userService->createUser($userName, $pwd, $emailId); /* returns the User object. */ 
$profile = new Profile($userObj);
$date = date(DATE_ATOM, mktime());
$date1 = strtotime($date);
$currentDate= date('Y-m-j', $date1);/* returns the current date object.User can set any date */ 
$profile->setCountry("USA");
$profile->setCity("Houston");
$profile->setCountry("India");
$profile->setDateOfBirth("14-02-2012");
$profile->setFirstName("Nick");
$profile->setLastName("Gill");
$profile->setHomeLandLine("+1-1800-877-453");
$profile->setOfficeLandLine("+1-1800-111-999");
$profile->setMobile("958901234571");
$profile->setSex(UserGender::MALE);
$profile->setState("Texas");
$user = $userService->createOrUpdateProfile($userObj); /* returns the updated User object. */
print_r("userName is " . $user->getUserName());
print_r("emailId is " . $user->getEmail());
$profile = $user->getProfile();   
print_r("firstName is" . $profile->getFirstName();  
$jsonResponse = $user->toString(); /* returns the response in JSON format. (as shown below)*/ 
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick ",
                    "email": "nick@gmail.com",
                    "accountLocked": false,
                    "profile": {
                        "firstName": "Nick ",
                        "lastName": "Gill",
                        "sex": "Male",
                        "dateOfBirth": "2012-12-11T18:30:00.000Z",
                        "city": "Houston",
                        "state": "Texas",
                        "pincode": "74193",
                        "country": "USA",
                        "mobile": "+958901234571",
                        "homeLandLine": "+1-1800-877-453",
                        "officeLandLine": "+1-1800-111-999"
                    }
                }
            }
        }
    }
}
                                            
function authenticate($userName, $pwd)

Authenticate user based on userName and password.

Parameters:

userName - UserName which should be unique for the App
pwd - Password for the User

Returns:

App42Response Object if authenticated successfully.

Response: App42Response Object

Exception:

This method throws following exception.
/*
2002 - NOT FOUND - UserName/Password did not match. Authentication Failed. 
*/ 		  
        
For more details click Exception
$userName = "Nick";
$pwd = "*******";
		
$response = $userService->authenticate($userName, $pwd); /* returns the App42Response object. */
$success = $response->isResponseSuccess();
$jsonResponse = $response->toString(); /* returns the response in JSON format. (as shown below)*/assignRoles
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick",
                    "accountLocked": false
                }
            }
        }
    }
}
                                            
function unlockUser($userName)

Unlock the user based on the userName. Apps can use these feature to unlock a user because of reasons specific to their usercase e.g. If payment received and the App wants the user to be activated.

Parameters:

userName - UserName which should be unique for the App

Returns:

The unlocked User Object

Response: User Object

Exception:

This method throws following exception.
/*
2000 - NOT FOUND - User by the name '<userName>' does not exist.
*/ 		  
        
For more details click Exception
$userName = "Nick";

$user = $userService->unlockUser($userName); /* returns the unlocked User object. */
print_r("userName is" . $user->getUserName());
print_r("emailId is" . $user->getEmail());
$jsonResponse = $user->toString(); /* returns the response in JSON format. (as shown below)*/ 
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick",
                    "accountLocked": false
                }
            }
        }
    }
}                                        
function lockUser($userName)

Locks the user based on the userName. Apps can use these feature to lock a user because of reasons specific to their usercase e.g. If payment not received and the App wants the user to be inactive

Parameters:

userName - UserName which should be unique for the App

Returns:

The locked User Object

Response: User Object

Exception:

This method throws following exception.
/*
2000 - NOT FOUND - User by the name '<userName>' does not exist.
*/ 		  
        
For more details click Exception
$userName = "Nick";

$user = $userService->lockUser($userName); /* returns the unlocked User object. */
print_r("userName is" . $user->getUserName());
print_r("emailId is" . $user->getEmail());
$jsonResponse = $user->toString(); /* returns the response in JSON format. (as shown below)*/assignRoles
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick",
                    "accountLocked": true
                }
            }
        }
    }
}
										
function changeUserPassword($userName, $oldPwd, $newPwd)

Change the password for user based on the userName.

Parameters:

userName - UserName which should be unique for the App
oldPwd - Old Password for the user for authentication
newPwd - New Password for the user to change

Returns:

App42Response Object if updated successfully

Response: App42Response Object

Exception:

This method throws following exception.
/*
2000 - NOT FOUND - User by the name '<userName>' does not exist.
2003 - BAD REQUEST - Old Password is not matching for user '<userName>'.  
*/ 		  
        
For more details click Exception
$userName = "Nick";
$oldPwd   = "*******";
$newPwd   = "*******";

$response = $userService->changeUserPassword($userName, $oldPwd, $newPwd); /* returns the App42Response object. */
$success = $respons->isResponseSuccess();
$jsonResponse = $respons->toString(); /* returns the response in JSON format. (as shown below)*/
{
    "app42": {
        "response": {
            "success": true,
            "users": {
                "user": {
                    "userName": "Nick"
                }
            }
        }
    }
}