/**
  * @param Request $request
  * @param array   $data
  * @param int     $status
  *
  * @return Response
  */
 public function negociate(Request $request, array $data = [], $status = Response::HTTP_OK)
 {
     $acceptHeader = $request->getHeader('Accept') ? $request->getHeader('Accept') : 'application/json';
     $priorities = ['application/json', 'text/html; charset=UTF-8'];
     $mediaType = $this->negotiator->getBest($acceptHeader, $priorities);
     $value = $mediaType->getValue();
     if ($value == 'text/html; charset=UTF-8') {
         return new Response(print_r($data, true), $status);
     }
     return new JsonResponse($data, $status);
 }
 /**
  * @param Request|null $request
  *
  * @return \App\Model\User|false
  */
 public function getUser(Request $request = null)
 {
     if (!$request) {
         return;
     }
     $token = base64_decode($request->getHeader('Authorization'));
     if (!$token) {
         return;
     }
     if (!strpos($token, ':')) {
         return;
     }
     list($name, $password) = explode(':', $token);
     return $this->repository->findByNameAndPassword($name, $password);
 }