Update API
This commit is contained in:
parent
f8b6371ee5
commit
5698bd280c
@ -96,6 +96,7 @@ class Opalestate_API {
|
|||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function jwt_auth_token_before_dispatch( $data, $user ) {
|
public function jwt_auth_token_before_dispatch( $data, $user ) {
|
||||||
|
$data['user_id'] = $user->data->ID;
|
||||||
$data['user_role'] = $user->roles;
|
$data['user_role'] = $user->roles;
|
||||||
$data['avatar'] = opalestate_get_user_meta( $user->data->ID, 'avatar' );
|
$data['avatar'] = opalestate_get_user_meta( $user->data->ID, 'avatar' );
|
||||||
|
|
||||||
|
@ -70,6 +70,24 @@ class Opalestate_User_Api extends Opalestate_Base_API {
|
|||||||
],
|
],
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
register_rest_route(
|
||||||
|
$this->namespace,
|
||||||
|
'/' . $this->base . '/(?P<id>[\d]+)/favorites',
|
||||||
|
[
|
||||||
|
'args' => [
|
||||||
|
'id' => [
|
||||||
|
'description' => __( 'Unique identifier for the resource.', 'opalestate-pro' ),
|
||||||
|
'type' => 'integer',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'methods' => WP_REST_Server::READABLE,
|
||||||
|
'callback' => [ $this, 'get_favorites' ],
|
||||||
|
'permission_callback' => [ $this, 'get_item_permissions_check' ],
|
||||||
|
],
|
||||||
|
]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -581,6 +599,46 @@ class Opalestate_User_Api extends Opalestate_Base_API {
|
|||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show all favorited properties with pagination.
|
||||||
|
*
|
||||||
|
* @param WP_REST_Request $request Full details about the request.
|
||||||
|
* @return WP_Error|WP_REST_Response
|
||||||
|
*/
|
||||||
|
public function get_favorites( $request ) {
|
||||||
|
$id = (int) $request['id'];
|
||||||
|
$user_data = get_userdata( $id );
|
||||||
|
|
||||||
|
if ( empty( $id ) || empty( $user_data->ID ) ) {
|
||||||
|
return new WP_Error( 'opalestate_rest_invalid_id', __( 'Invalid resource ID.', 'opalestate-pro' ), [ 'status' => 404 ] );
|
||||||
|
}
|
||||||
|
|
||||||
|
$per_page = isset( $request['per_page'] ) && $request['per_page'] ? $request['per_page'] : 5;
|
||||||
|
$paged = isset( $request['page'] ) && $request['page'] ? $request['page'] : 1;
|
||||||
|
$items = (array) get_user_meta( $request['id'], 'opalestate_user_favorite', true );
|
||||||
|
|
||||||
|
$property_list = get_posts( [
|
||||||
|
'post_type' => 'opalestate_property',
|
||||||
|
'posts_per_page' => $per_page,
|
||||||
|
'paged' => $paged,
|
||||||
|
'post__in' => ! empty( $items ) ? $items : [ 9999999 ],
|
||||||
|
] );
|
||||||
|
|
||||||
|
if ( $property_list ) {
|
||||||
|
$i = 0;
|
||||||
|
foreach ( $property_list as $property_info ) {
|
||||||
|
$properties[ $i ] = $this->get_property_data( $property_info );
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return $this->get_response( 404, [ 'collection' => [], 'message' => esc_html__( 'Not found!', 'opalestate-pro' ) ] );
|
||||||
|
}
|
||||||
|
|
||||||
|
$response['collection'] = $properties;
|
||||||
|
|
||||||
|
return $this->get_response( 200, $response );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the query params for collections.
|
* Get the query params for collections.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user