response([ 'success' => true, 'message' => $message, 'data' => $data ]); } protected function error($message = 'Something went wrong', $status = 400) { return $this->response([ 'success' => false, 'message' => $message ], $status); } protected function notFound($message = 'Resource not found') { return $this->error($message, 404); } /** * Sanitize request params by type (rules like 'text', 'email', 'int'). * Returns the sanitized array. Backward-compatible helper. */ protected function validate(\WP_REST_Request $request, array $rules = []) { return RequestSanitizer::sanitizeRequest($request, $rules); } /** * Rule-based validation (rules like 'required|email|min:3'). Returns only * the validated fields, or throws ValidationException (→ 422 at dispatch). * * @param array $rules * @param array $messages * @return array */ protected function validated(\WP_REST_Request $request, array $rules = [], array $messages = []) { return Validator::make($request->get_params(), $rules, $messages)->validate(); } /** * Build a Validator without immediately throwing, for manual handling. * * @param array $rules * @param array $messages */ protected function validator(\WP_REST_Request $request, array $rules = [], array $messages = []): Validator { return Validator::make($request->get_params(), $rules, $messages); } }