/**
  * @param mixed $data
  *
  * @return mixed
  */
 protected function setResponseBody($data)
 {
     $isSuccess = $this->response->status() >= 200 && $this->response->status() < 300;
     //$this->setDebug('profiler', Profiler::application());
     if (Helpers_Arr::count($this->debugRequestParams)) {
         $this->setDebugData(['requestParams' => $this->requestData($this->debugRequestParams)]);
     }
     if ($isSuccess) {
         $this->debugToJSON = FALSE;
     }
     if ($this->debugToJSON === TRUE && Helpers_Arr::count($this->_response_debug)) {
         $data = Helpers_Arr::merge($data, ['debug' => $this->_response_debug]);
     }
     if ($isSuccess && (!Helpers_Arr::count($data) || $this->response->status() == 204)) {
         $this->response->body(NULL);
         $this->response->status(204);
     } else {
         $this->response->body(json_encode($data, JSON_UNESCAPED_UNICODE));
     }
     return $data;
 }