UserController.php (1566B)
1 <?php 2 /** 3 * Controls User info 4 */ 5 6 namespace Extendify\ExtendifySdk\Controllers; 7 8 use Extendify\ExtendifySdk\Http; 9 use Extendify\ExtendifySdk\User; 10 11 if (!defined('ABSPATH')) { 12 die('No direct access.'); 13 } 14 15 /** 16 * The controller for managing user data like API keys, etc 17 */ 18 class UserController 19 { 20 21 /** 22 * Return the current user state 23 * 24 * @return array 25 */ 26 public static function show() 27 { 28 return new \WP_REST_Response(User::state()); 29 } 30 31 /** 32 * Return meta info about the current user 33 * 34 * @param \WP_REST_Request $request - The request. 35 * @return array 36 */ 37 public static function meta($request) 38 { 39 $key = \sanitize_text_field(\wp_unslash($request->get_param('key'))); 40 return new \WP_REST_Response(User::data($key)); 41 } 42 43 /** 44 * Persist the data 45 * 46 * @param \WP_REST_Request $request - The request. 47 * @return array 48 */ 49 public static function store($request) 50 { 51 $userData = json_decode($request->get_param('data'), true); 52 \update_user_meta(\get_current_user_id(), 'extendifysdk_user_data', $userData); 53 54 return new \WP_REST_Response(User::state()); 55 } 56 57 /** 58 * Sign up the user to the mailing list. 59 * 60 * @param \WP_REST_Request $request - The request. 61 * @return WP_REST_Response|WP_Error 62 */ 63 public static function mailingList($request) 64 { 65 $response = Http::post('/register-mailing-list', $request->get_params()); 66 return new \WP_REST_Response($response); 67 } 68 }