/**
  * Prepare a single comment output for response.
  *
  * @param  object          $comment Comment object.
  * @param  WP_REST_Request $request Request object.
  * @return WP_REST_Response
  */
 public function prepare_item_for_response($comment, $request)
 {
     $data = array('id' => (int) $comment->comment_ID, 'post' => (int) $comment->comment_post_ID, 'parent' => (int) $comment->comment_parent, 'author' => (int) $comment->user_id, 'author_name' => $comment->comment_author, 'author_email' => $comment->comment_author_email, 'author_url' => $comment->comment_author_url, 'author_ip' => $comment->comment_author_IP, 'author_avatar_urls' => rest_get_avatar_urls($comment->comment_author_email), 'author_user_agent' => $comment->comment_agent, 'date' => mysql_to_rfc3339($comment->comment_date), 'date_gmt' => mysql_to_rfc3339($comment->comment_date_gmt), 'content' => array('rendered' => apply_filters('comment_text', $comment->comment_content, $comment), 'raw' => $comment->comment_content), 'karma' => (int) $comment->comment_karma, 'link' => get_comment_link($comment), 'status' => $this->prepare_status_response($comment->comment_approved), 'type' => get_comment_type($comment->comment_ID));
     $context = !empty($request['context']) ? $request['context'] : 'view';
     $data = $this->filter_response_by_context($data, $context);
     $data = $this->add_additional_fields_to_object($data, $request);
     // Wrap the data in a response object
     $response = rest_ensure_response($data);
     $response->add_links($this->prepare_links($comment));
     /**
      * Filter a comment returned from the API.
      *
      * Allows modification of the comment right before it is returned.
      *
      * @param WP_REST_Response  $response   The response object.
      * @param object            $comment    The original comment object.
      * @param WP_REST_Request   $request    Request used to generate the response.
      */
     return apply_filters('rest_prepare_comment', $response, $comment, $request);
 }
 /**
  * Prepare a single user output for response
  *
  * @param object $user User object.
  * @param WP_REST_Request $request Request object.
  * @return WP_REST_Response Response data.
  */
 public function prepare_item_for_response($user, $request)
 {
     $data = array('avatar_urls' => rest_get_avatar_urls($user->user_email), 'capabilities' => $user->allcaps, 'description' => $user->description, 'email' => $user->user_email, 'extra_capabilities' => $user->caps, 'first_name' => $user->first_name, 'id' => $user->ID, 'last_name' => $user->last_name, 'link' => get_author_posts_url($user->ID), 'name' => $user->display_name, 'nickname' => $user->nickname, 'registered_date' => date('c', strtotime($user->user_registered)), 'roles' => $user->roles, 'slug' => $user->user_nicename, 'url' => $user->user_url, 'username' => $user->user_login);
     $context = !empty($request['context']) ? $request['context'] : 'embed';
     $data = $this->filter_response_by_context($data, $context);
     $data = $this->add_additional_fields_to_object($data, $request);
     // Wrap the data in a response object
     $data = rest_ensure_response($data);
     $data->add_links($this->prepare_links($user));
     /**
      * Filter user data returned from the REST API.
      *
      * @param WP_REST_Response $data    Response data.
      * @param object           $user    User object used to create response.
      * @param WP_REST_Request  $request Request object.
      */
     return apply_filters('rest_prepare_user', $data, $user, $request);
 }
 /**
  * Prepares a single user output for response.
  *
  * @since 4.7.0
  * @access public
  *
  * @param WP_User         $user    User object.
  * @param WP_REST_Request $request Request object.
  * @return WP_REST_Response Response object.
  */
 public function prepare_item_for_response($user, $request)
 {
     $data = array();
     $schema = $this->get_item_schema();
     if (!empty($schema['properties']['id'])) {
         $data['id'] = $user->ID;
     }
     if (!empty($schema['properties']['username'])) {
         $data['username'] = $user->user_login;
     }
     if (!empty($schema['properties']['name'])) {
         $data['name'] = $user->display_name;
     }
     if (!empty($schema['properties']['first_name'])) {
         $data['first_name'] = $user->first_name;
     }
     if (!empty($schema['properties']['last_name'])) {
         $data['last_name'] = $user->last_name;
     }
     if (!empty($schema['properties']['email'])) {
         $data['email'] = $user->user_email;
     }
     if (!empty($schema['properties']['url'])) {
         $data['url'] = $user->user_url;
     }
     if (!empty($schema['properties']['description'])) {
         $data['description'] = $user->description;
     }
     if (!empty($schema['properties']['link'])) {
         $data['link'] = get_author_posts_url($user->ID, $user->user_nicename);
     }
     if (!empty($schema['properties']['locale'])) {
         $data['locale'] = get_user_locale($user);
     }
     if (!empty($schema['properties']['nickname'])) {
         $data['nickname'] = $user->nickname;
     }
     if (!empty($schema['properties']['slug'])) {
         $data['slug'] = $user->user_nicename;
     }
     if (!empty($schema['properties']['roles'])) {
         // Defensively call array_values() to ensure an array is returned.
         $data['roles'] = array_values($user->roles);
     }
     if (!empty($schema['properties']['registered_date'])) {
         $data['registered_date'] = date('c', strtotime($user->user_registered));
     }
     if (!empty($schema['properties']['capabilities'])) {
         $data['capabilities'] = (object) $user->allcaps;
     }
     if (!empty($schema['properties']['extra_capabilities'])) {
         $data['extra_capabilities'] = (object) $user->caps;
     }
     if (!empty($schema['properties']['avatar_urls'])) {
         $data['avatar_urls'] = rest_get_avatar_urls($user->user_email);
     }
     if (!empty($schema['properties']['meta'])) {
         $data['meta'] = $this->meta->get_value($user->ID, $request);
     }
     $context = !empty($request['context']) ? $request['context'] : 'embed';
     $data = $this->add_additional_fields_to_object($data, $request);
     $data = $this->filter_response_by_context($data, $context);
     // Wrap the data in a response object.
     $response = rest_ensure_response($data);
     $response->add_links($this->prepare_links($user));
     /**
      * Filters user data returned from the REST API.
      *
      * @since 4.7.0
      *
      * @param WP_REST_Response $response The response object.
      * @param object           $user     User object used to create response.
      * @param WP_REST_Request  $request  Request object.
      */
     return apply_filters('rest_prepare_user', $response, $user, $request);
 }
 /**
  * Prepare a single comment output for response.
  *
  * @param  object          $comment Comment object.
  * @param  WP_REST_Request $request Request object.
  * @return WP_REST_Response
  */
 public function prepare_item_for_response($comment, $request)
 {
     $data = array('id' => (int) $comment->comment_ID, 'post' => (int) $comment->comment_post_ID, 'parent' => (int) $comment->comment_parent, 'author' => (int) $comment->user_id, 'author_name' => $comment->comment_author, 'author_email' => $comment->comment_author_email, 'author_url' => $comment->comment_author_url, 'author_ip' => $comment->comment_author_IP, 'author_avatar_urls' => rest_get_avatar_urls($comment->comment_author_email), 'author_user_agent' => $comment->comment_agent, 'date' => mysql_to_rfc3339($comment->comment_date), 'date_gmt' => mysql_to_rfc3339($comment->comment_date_gmt), 'content' => array('rendered' => apply_filters('comment_text', $comment->comment_content, $comment), 'raw' => $comment->comment_content), 'karma' => (int) $comment->comment_karma, 'link' => get_comment_link($comment), 'status' => $this->prepare_status_response($comment->comment_approved), 'type' => get_comment_type($comment->comment_ID));
     $context = !empty($request['context']) ? $request['context'] : 'view';
     $data = $this->filter_response_by_context($data, $context);
     $data = $this->add_additional_fields_to_object($data, $request);
     // Wrap the data in a response object
     $data = rest_ensure_response($data);
     $data->add_links($this->prepare_links($comment));
     return apply_filters('rest_prepare_comment', $data, $comment, $request);
 }