guard_staff(); if ( $check ) { return $check; } // Confirms the service exists and (for team members) that it is theirs. $access = $this->assert_service_access( $service_id ); if ( $access ) { return $access; } try { $request = new \WP_REST_Request( 'GET', '/booktics/v1/services/' . $service_id ); $request->set_url_params( [ 'id' => $service_id ] ); $controller = new \Booktics\Service\Controllers\Service_Controller(); $service = $this->extract_response( $controller->get_item( $request ), 'Failed to retrieve service.' ); if ( isset( $service['error'] ) ) { return $service; } return $this->shape_service( $service, true ); } catch ( \Throwable $e ) { Log::error( 'Booktics_Get_Service_Tool error', [ 'error' => $e->getMessage() ] ); return [ 'error' => 'Failed to retrieve service: ' . $e->getMessage() ]; } } }