'GET','permission_callback'=>[$this,'permission'],'args'=>['q'=>['type'=>'string','required'=>true,'maxLength'=>190,'sanitize_callback'=>'sanitize_text_field']],'callback'=>function($r){try{$response=new WP_REST_Response($this->service->search($r['q']));$response->header('Cache-Control','private, no-store');return $response;}catch(CatalogException $e){return new WP_Error($e->errorCode,$e->getMessage(),['status'=>$e->status,'field'=>$e->field]);}}]); } public function permission(): bool|WP_Error {return current_user_can(Capabilities::MANAGE_BOOKINGS)?:new WP_Error('abece_booking_booking_forbidden',__('You do not have permission to manage bookings.','abece-booking'),['status'=>rest_authorization_required_code()]);} }