protected function handlePOST()
    {
        if (empty($payload = $this->getPayloadData())) {
            throw new BadRequestException('No data supplied for operation.');
        }

        $data = [
            'username'          => array_get($payload, 'username'),
            'first_name'        => array_get($payload, 'first_name'),
            'last_name'         => array_get($payload, 'last_name'),
            'name'              => array_get($payload, 'name'),
            'email'             => array_get($payload, 'email'),
            'phone'             => array_get($payload, 'phone'),
            'security_question' => array_get($payload, 'security_question'),
            'security_answer'   => array_get($payload, 'security_answer'),
            'default_app_id'    => array_get($payload, 'default_app_id')
        ];

        $data = array_filter($data, function ($value) {
            return !is_null($value);
        });

        $user = Session::user();

        if (empty($user)) {
            throw new NotFoundException('No user session found.');
        }

        $oldToken = Session::getSessionToken();
        $email = $user->email;
        $user->update($data);

        if (!empty($oldToken) && $email !== array_get($data, 'email', $email)) {
            // Email change invalidates token. Need to create a new token.
            $forever = JWTUtilities::isForever($oldToken);
            Session::setUserInfoWithJWT($user, $forever);
            $newToken = Session::getSessionToken();

            return ['success' => true, 'session_token' => $newToken];
        }

        return ['success' => true];
    }
protected function handlePOST()
    {
        if (empty($payload = $this->getPayloadData())) {
            throw new BadRequestException('No data supplied for operation.');
        }

        $data = [
            'username'          => array_get($payload, 'username'),
            'first_name'        => array_get($payload, 'first_name'),
            'last_name'         => array_get($payload, 'last_name'),
            'name'              => array_get($payload, 'name'),
            'email'             => array_get($payload, 'email'),
            'phone'             => array_get($payload, 'phone'),
            'security_question' => array_get($payload, 'security_question'),
            'security_answer'   => array_get($payload, 'security_answer'),
            'default_app_id'    => array_get($payload, 'default_app_id')
        ];

        $data = array_filter($data, function ($value) {
            return !is_null($value);
        });

        $user = Session::user();

        if (empty($user)) {
            throw new NotFoundException('No user session found.');
        }

        $oldToken = Session::getSessionToken();
        $email = $user->email;
        $user->update($data);

        if (!empty($oldToken) && $email !== array_get($data, 'email', $email)) {
            // Email change invalidates token. Need to create a new token.
            $forever = JWTUtilities::isForever($oldToken);
            Session::setUserInfoWithJWT($user, $forever);
            $newToken = Session::getSessionToken();

            return ['success' => true, 'session_token' => $newToken];
        }

        return ['success' => true];
    }
protected function handlePOST ( ) { if ( empty ( $ payload = $ this -> getPayloadData ( ) ) ) { throw new BadRequestException ( 'No data supplied for operation.' ) ; } $ data = [ 'username' => array_get ( $ payload , 'username' ) , 'first_name' => array_get ( $ payload , 'first_name' ) , 'last_name' => array_get ( $ payload , 'last_name' ) , 'name' => array_get ( $ payload , 'name' ) , 'email' => array_get ( $ payload , 'email' ) , 'phone' => array_get ( $ payload , 'phone' ) , 'security_question' => array_get ( $ payload , 'security_question' ) , 'security_answer' => array_get ( $ payload , 'security_answer' ) , 'default_app_id' => array_get ( $ payload , 'default_app_id' ) ] ; $ data = array_filter ( $ data , function ( $ value ) { return ! is_null ( $ value ) ; } ) ; $ user = Session :: user ( ) ; if ( empty ( $ user ) ) { throw new NotFoundException ( 'No user session found.' ) ; } $ oldToken = Session :: getSessionToken ( ) ; $ email = $ user -> email ; $ user -> update ( $ data ) ; if ( ! empty ( $ oldToken ) && $ email !== array_get ( $ data , 'email' , $ email ) ) { // Email change invalidates token. Need to create a new token. $ forever = JWTUtilities :: isForever ( $ oldToken ) ; Session :: setUserInfoWithJWT ( $ user , $ forever ) ; $ newToken = Session :: getSessionToken ( ) ; return [ 'success' => true , 'session_token' => $ newToken ] ; } return [ 'success' => true ] ; }
Updates user profile.

@return array
@throws NotFoundException
@throws \Exception
Updates user profile .