| @@ -5,9 +5,9 @@ | ||
| 5 | 5 | use SureCart\Models\Customer; |
| 6 | 6 | use SureCart\Models\User; |
| 7 | 7 | |
| 8 | 8 | /** |
| 9 | - * Handle Price requests through the REST API | |
| 9 | + * Handle Customer related REST API requests. | |
| 10 | 10 | */ |
| 11 | 11 | class CustomerController extends RestController { |
| 12 | 12 | /** |
| 13 | 13 | * Class to make the requests. |
| @@ -14,8 +14,30 @@ | ||
| 14 | 14 | * |
| 15 | 15 | * @var string |
| 16 | 16 | */ |
| 17 | 17 | protected $class = Customer::class; |
| 18 | + | |
| 19 | + /** | |
| 20 | + * Get the current logged-in user's customer record. | |
| 21 | + * | |
| 22 | + * @param \WP_REST_Request $request Rest Request. | |
| 23 | + * | |
| 24 | + * @return \SureCart\Models\Customer|null|\WP_Error | |
| 25 | + */ | |
| 26 | + public function me( \WP_REST_Request $request ) { | |
| 27 | + $mode = $request->get_param( 'mode' ) ?? 'live'; | |
| 28 | + $user = User::current(); | |
| 29 | + | |
| 30 | + $customer_id = $user->customerId( $mode ); | |
| 31 | + if ( empty( $customer_id ) ) { | |
| 32 | + return null; | |
| 33 | + } | |
| 34 | + | |
| 35 | + // Set the ID in the request to fetch the customer record. | |
| 36 | + $request->set_param( 'id', $customer_id ); | |
| 37 | + | |
| 38 | + return $this->find( $request ); | |
| 39 | + } | |
| 18 | 40 | |
| 19 | 41 | /** |
| 20 | 42 | * Connect a user. |
| 21 | 43 | * |