/**
  * Returns either a View or Response object.
  * 
  * @route GET /?method=example.mixed
  * @route GET /example/mixed
  * 
  * @param Request $request
  * @return View|Response
  */
 public function mixedAction($request)
 {
     // accept HTML, JSON and XML
     $request->acceptContentTypes(array('html', 'json', 'xml'));
     if ('html' === $request->getContentType()) {
         $response = new View();
         $response->setLayout('main');
     } else {
         $response = new Response();
     }
     $response->method = $request->getMethod();
     $response->controller = $request->getController();
     $response->action = $request->getAction();
     return $response;
 }
 /**
  * @route GET /?method=users.destroy&id=1&format=json
  * @route GET /users/1/destroy.json
  * 
  * @param Request $request
  * @return Response
  * @throws Exception
  */
 public function destroyAction($request)
 {
     $request->acceptContentTypes(array('json'));
     $id = $request->getParam('id');
     $model = $this->getModel('User');
     $user = $model->find($id);
     if (!$user) {
         throw new Exception('User not found', Response::NOT_FOUND);
     }
     $model->delete($user->id);
     // return 200 OK
     return new Response();
 }