Blame view

sources/apps/contacts/lib/middleware/http.php 2.32 KB
d1bafeea1   Kload   [fix] Upgrade to ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
  <?php
  
  /**
   * ownCloud - HTTP Middleware
   *
   * @author Thomas Tanghus
   * @copyright 2013 Thomas Tanghus (thomas@tanghus.net)
   *
   * This library is free software; you can redistribute it and/or
   * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
   * License as published by the Free Software Foundation; either
   * version 3 of the License, or any later version.
   *
   * This library is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
   *
   * You should have received a copy of the GNU Affero General Public
   * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
   *
   */
  
  
  namespace OCA\Contacts\Middleware;
  
  use OCA\Contacts\Controller,
  	OCA\Contacts\JSONResponse,
  	OCP\AppFramework\Middleware,
  	OCP\AppFramework\Http\Response;
  
  /**
   * Used to intercept exceptions thrown in controllers and backends
   * and transform them into valid HTTP responses.
   */
  class Http extends Middleware {
  
  	private $api;
  
  	/**
  	 * @param IAppContainer $app an instance of the app container
  	 */
  	public function __construct($app) {
  		//$this->api = $api;
  	}
  
  	/**
  	 * If an Exception is being caught, return a JSON error response with
  	 * a suitable status code
  	 * @param Controller $controller the controller that is being called
  	 * @param string $methodName the name of the method that will be called on
  	 *                           the controller
  	 * @param \Exception $exception the thrown exception
  	 * @return Response a Response object
  	 */
  	public function afterException($controller, $methodName, \Exception $exception){
  		// If there's no proper status code associated, set it to 500.
  		$response = new JSONResponse();
  		if($exception->getCode() < 100) {
  			$response->setStatus(500);
  		} else {
  			$response->setStatus($exception->getCode());
  		}
  		$response->setErrorMessage($exception->getMessage());
  		//$this->api->log(get_class($controller) . '->' . $methodName . ': ' . $exception->getMessage());
  		return $response;
  	}
  
  	function beforeOutput($controller, $methodName, $output) {
  		return $output;
  	}
  	function beforeController($controller, $methodName) {}
  	function afterController($controller, $methodName, Response $response) {
  		return $response;
  	}
  
  }