/**
*
* Edit User Profile
*
* @param string $firstname First Name
* @param string $email Email
* @param string $phoneNumber Phone Number
* @param int $gender Gender (Constants available in User class)
* @param string $biography Biography
* @param string $externalUrl External Url
* @return API\Response\EditProfileAccountResponse
* @throws Exception
*/
public function editUserProfile($firstname = null, $email = null, $phoneNumber = null, $gender = null, $biography = null, $externalUrl = null)
{
if (!$this->isLoggedIn()) {
throw new InstagramException("You must be logged in to call editUserProfile().");
}
$currentUser = $this->getCurrentUserAccount()->getUser();
if ($firstname == null) {
$firstname = $currentUser->getFullName();
}
if ($email == null) {
$email = $currentUser->getEmail();
}
if ($phoneNumber == null) {
$phoneNumber = $currentUser->getPhoneNumber();
}
if ($gender == null) {
$gender = $currentUser->getGender();
}
if ($biography == null) {
$biography = $currentUser->getBiography();
}
if ($externalUrl == null) {
$externalUrl = $currentUser->getExternalUrl();
}
$request = new EditProfileAccountRequest($this, $firstname, $email, $phoneNumber, $gender, $biography, $externalUrl);
$response = $request->execute();
if (!$response->isOk()) {
throw new InstagramException(sprintf("Failed to editUserProfile: [%s] %s", $response->getStatus(), $response->getMessage()));
}
return $response;
}