/**
  * Prepare a request for processing (without doing the actual datatable).
  *
  * @return Version
  */
 public function prepareRequest()
 {
     $version = $this->versionEngine->getVersion();
     $queryConfiguration = $version->parseRequest($this->columnConfigurations);
     $this->provider->prepareForProcessing($queryConfiguration, $this->columnConfigurations);
     return ['version' => $version, 'queryConfiguration' => $queryConfiguration];
 }
 /**
  * Will handle the current request and returns the correct response
  */
 public function handleRequest()
 {
     $version = $this->versionEngine->getVersion();
     $queryConfiguration = $version->parseRequest($this->columnConfigurations);
     $this->provider->prepareForProcessing($queryConfiguration, $this->columnConfigurations);
     $data = $this->provider->process();
     return $version->createResponse($data, $queryConfiguration, $this->columnConfigurations);
 }