From 911bd3c16f508eb8f3cb9b03a5a21e2aa72ebf79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20M=C3=BCller?= <thomas.mueller@tmit.eu>
Date: Wed, 21 Aug 2013 01:00:26 +0200
Subject: [PATCH] moving response classes over to OCP

---
 lib/appframework/controller/controller.php    |  4 +-
 lib/appframework/http/dispatcher.php          |  3 +
 lib/appframework/http/downloadresponse.php    |  2 +-
 lib/appframework/http/http.php                | 62 +------------
 lib/appframework/http/redirectresponse.php    |  2 +
 lib/appframework/middleware/middleware.php    |  2 +-
 .../middleware/middlewaredispatcher.php       |  2 +-
 .../security/securitymiddleware.php           |  4 +-
 lib/public/appframework/http/http.php         | 89 +++++++++++++++++++
 .../appframework/http/jsonresponse.php        |  2 +-
 .../appframework/http/response.php            |  2 +-
 .../appframework/http/templateresponse.php    |  2 +-
 12 files changed, 105 insertions(+), 71 deletions(-)
 create mode 100644 lib/public/appframework/http/http.php
 rename lib/{ => public}/appframework/http/jsonresponse.php (98%)
 rename lib/{ => public}/appframework/http/response.php (98%)
 rename lib/{ => public}/appframework/http/templateresponse.php (98%)

diff --git a/lib/appframework/controller/controller.php b/lib/appframework/controller/controller.php
index f6f34618ec..a7498ba0e1 100644
--- a/lib/appframework/controller/controller.php
+++ b/lib/appframework/controller/controller.php
@@ -24,9 +24,9 @@
 
 namespace OC\AppFramework\Controller;
 
-use OC\AppFramework\Http\TemplateResponse;
 use OC\AppFramework\Http\Request;
 use OC\AppFramework\Core\API;
+use OCP\AppFramework\Http\TemplateResponse;
 
 
 /**
@@ -133,7 +133,7 @@ abstract class Controller {
 	 * @param string $renderAs user renders a full page, blank only your template
 	 *                          admin an entry in the admin settings
 	 * @param array $headers set additional headers in name/value pairs
-	 * @return \OC\AppFramework\Http\TemplateResponse containing the page
+	 * @return \OCP\AppFramework\Http\TemplateResponse containing the page
 	 */
 	public function render($templateName, array $params=array(),
 							$renderAs='user', array $headers=array()){
diff --git a/lib/appframework/http/dispatcher.php b/lib/appframework/http/dispatcher.php
index 183854650f..ea57a6860c 100644
--- a/lib/appframework/http/dispatcher.php
+++ b/lib/appframework/http/dispatcher.php
@@ -74,6 +74,9 @@ class Dispatcher {
 		} catch(\Exception $exception){
 			$response = $this->middlewareDispatcher->afterException(
 				$controller, $methodName, $exception);
+			if (is_null($response)) {
+				throw $exception;
+			}
 		}
 
 		$response = $this->middlewareDispatcher->afterController(
diff --git a/lib/appframework/http/downloadresponse.php b/lib/appframework/http/downloadresponse.php
index 096e4fc833..67b9542dba 100644
--- a/lib/appframework/http/downloadresponse.php
+++ b/lib/appframework/http/downloadresponse.php
@@ -28,7 +28,7 @@ namespace OC\AppFramework\Http;
 /**
  * Prompts the user to download the a file
  */
-abstract class DownloadResponse extends Response {
+class DownloadResponse extends \OCP\AppFramework\Http\Response {
 
 	private $filename;
 	private $contentType;
diff --git a/lib/appframework/http/http.php b/lib/appframework/http/http.php
index 73f32d13b3..e00dc9cdc4 100644
--- a/lib/appframework/http/http.php
+++ b/lib/appframework/http/http.php
@@ -25,67 +25,7 @@
 namespace OC\AppFramework\Http;
 
 
-class Http {
-
-	const STATUS_CONTINUE = 100;
-	const STATUS_SWITCHING_PROTOCOLS = 101;
-	const STATUS_PROCESSING = 102;
-	const STATUS_OK = 200;
-	const STATUS_CREATED = 201;
-	const STATUS_ACCEPTED = 202;
-	const STATUS_NON_AUTHORATIVE_INFORMATION = 203;
-	const STATUS_NO_CONTENT = 204;
-	const STATUS_RESET_CONTENT = 205;
-	const STATUS_PARTIAL_CONTENT = 206;
-	const STATUS_MULTI_STATUS = 207;
-	const STATUS_ALREADY_REPORTED = 208;
-	const STATUS_IM_USED = 226;
-	const STATUS_MULTIPLE_CHOICES = 300;
-	const STATUS_MOVED_PERMANENTLY = 301;
-	const STATUS_FOUND = 302;
-	const STATUS_SEE_OTHER = 303;
-	const STATUS_NOT_MODIFIED = 304;
-	const STATUS_USE_PROXY = 305;
-	const STATUS_RESERVED = 306;
-	const STATUS_TEMPORARY_REDIRECT = 307;
-	const STATUS_BAD_REQUEST = 400;
-	const STATUS_UNAUTHORIZED = 401;
-	const STATUS_PAYMENT_REQUIRED = 402;
-	const STATUS_FORBIDDEN = 403;
-	const STATUS_NOT_FOUND = 404;
-	const STATUS_METHOD_NOT_ALLOWED = 405;
-	const STATUS_NOT_ACCEPTABLE = 406;
-	const STATUS_PROXY_AUTHENTICATION_REQUIRED = 407;
-	const STATUS_REQUEST_TIMEOUT = 408;
-	const STATUS_CONFLICT = 409;
-	const STATUS_GONE = 410;
-	const STATUS_LENGTH_REQUIRED = 411;
-	const STATUS_PRECONDITION_FAILED = 412;
-	const STATUS_REQUEST_ENTITY_TOO_LARGE = 413;
-	const STATUS_REQUEST_URI_TOO_LONG = 414;
-	const STATUS_UNSUPPORTED_MEDIA_TYPE = 415;
-	const STATUS_REQUEST_RANGE_NOT_SATISFIABLE = 416;
-	const STATUS_EXPECTATION_FAILED = 417;
-	const STATUS_IM_A_TEAPOT = 418;
-	const STATUS_UNPROCESSABLE_ENTITY = 422;
-	const STATUS_LOCKED = 423;
-	const STATUS_FAILED_DEPENDENCY = 424;
-	const STATUS_UPGRADE_REQUIRED = 426;
-	const STATUS_PRECONDITION_REQUIRED = 428;
-	const STATUS_TOO_MANY_REQUESTS = 429;
-	const STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE = 431;
-	const STATUS_INTERNAL_SERVER_ERROR = 500;
-	const STATUS_NOT_IMPLEMENTED = 501;
-	const STATUS_BAD_GATEWAY = 502;
-	const STATUS_SERVICE_UNAVAILABLE = 503;
-	const STATUS_GATEWAY_TIMEOUT = 504;
-	const STATUS_HTTP_VERSION_NOT_SUPPORTED = 505;
-	const STATUS_VARIANT_ALSO_NEGOTIATES = 506;
-	const STATUS_INSUFFICIENT_STORAGE = 507;
-	const STATUS_LOOP_DETECTED = 508;
-	const STATUS_BANDWIDTH_LIMIT_EXCEEDED = 509;
-	const STATUS_NOT_EXTENDED = 510;
-	const STATUS_NETWORK_AUTHENTICATION_REQUIRED = 511;
+class Http extends \OCP\AppFramework\Http\Http{
 
 	private $server;
 	private $protocolVersion;
diff --git a/lib/appframework/http/redirectresponse.php b/lib/appframework/http/redirectresponse.php
index 727e0fb642..688447f161 100644
--- a/lib/appframework/http/redirectresponse.php
+++ b/lib/appframework/http/redirectresponse.php
@@ -24,6 +24,8 @@
 
 namespace OC\AppFramework\Http;
 
+use OCP\AppFramework\Http\Response;
+
 
 /**
  * Redirects to a different URL
diff --git a/lib/appframework/middleware/middleware.php b/lib/appframework/middleware/middleware.php
index 4df8849046..b12c03c3eb 100644
--- a/lib/appframework/middleware/middleware.php
+++ b/lib/appframework/middleware/middleware.php
@@ -24,7 +24,7 @@
 
 namespace OC\AppFramework\Middleware;
 
-use OC\AppFramework\Http\Response;
+use OCP\AppFramework\Http\Response;
 
 
 /**
diff --git a/lib/appframework/middleware/middlewaredispatcher.php b/lib/appframework/middleware/middlewaredispatcher.php
index c2d16134dc..70ab108e6b 100644
--- a/lib/appframework/middleware/middlewaredispatcher.php
+++ b/lib/appframework/middleware/middlewaredispatcher.php
@@ -25,7 +25,7 @@
 namespace OC\AppFramework\Middleware;
 
 use OC\AppFramework\Controller\Controller;
-use OC\AppFramework\Http\Response;
+use OCP\AppFramework\Http\Response;
 
 
 /**
diff --git a/lib/appframework/middleware/security/securitymiddleware.php b/lib/appframework/middleware/security/securitymiddleware.php
index 52818b1b53..4f1447e1af 100644
--- a/lib/appframework/middleware/security/securitymiddleware.php
+++ b/lib/appframework/middleware/security/securitymiddleware.php
@@ -27,12 +27,12 @@ namespace OC\AppFramework\Middleware\Security;
 use OC\AppFramework\Controller\Controller;
 use OC\AppFramework\Http\Http;
 use OC\AppFramework\Http\Request;
-use OC\AppFramework\Http\Response;
-use OC\AppFramework\Http\JSONResponse;
 use OC\AppFramework\Http\RedirectResponse;
 use OC\AppFramework\Utility\MethodAnnotationReader;
 use OC\AppFramework\Middleware\Middleware;
 use OC\AppFramework\Core\API;
+use OCP\AppFramework\Http\Response;
+use OCP\AppFramework\Http\JSONResponse;
 
 
 /**
diff --git a/lib/public/appframework/http/http.php b/lib/public/appframework/http/http.php
new file mode 100644
index 0000000000..9eafe78272
--- /dev/null
+++ b/lib/public/appframework/http/http.php
@@ -0,0 +1,89 @@
+<?php
+
+/**
+ * ownCloud - App Framework
+ *
+ * @author Bernhard Posselt, Thomas Tanghus, Bart Visscher
+ * @copyright 2012 Bernhard Posselt nukeawhale@gmail.com
+ *
+ * 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 OCP\AppFramework\Http;
+
+
+class Http {
+
+	const STATUS_CONTINUE = 100;
+	const STATUS_SWITCHING_PROTOCOLS = 101;
+	const STATUS_PROCESSING = 102;
+	const STATUS_OK = 200;
+	const STATUS_CREATED = 201;
+	const STATUS_ACCEPTED = 202;
+	const STATUS_NON_AUTHORATIVE_INFORMATION = 203;
+	const STATUS_NO_CONTENT = 204;
+	const STATUS_RESET_CONTENT = 205;
+	const STATUS_PARTIAL_CONTENT = 206;
+	const STATUS_MULTI_STATUS = 207;
+	const STATUS_ALREADY_REPORTED = 208;
+	const STATUS_IM_USED = 226;
+	const STATUS_MULTIPLE_CHOICES = 300;
+	const STATUS_MOVED_PERMANENTLY = 301;
+	const STATUS_FOUND = 302;
+	const STATUS_SEE_OTHER = 303;
+	const STATUS_NOT_MODIFIED = 304;
+	const STATUS_USE_PROXY = 305;
+	const STATUS_RESERVED = 306;
+	const STATUS_TEMPORARY_REDIRECT = 307;
+	const STATUS_BAD_REQUEST = 400;
+	const STATUS_UNAUTHORIZED = 401;
+	const STATUS_PAYMENT_REQUIRED = 402;
+	const STATUS_FORBIDDEN = 403;
+	const STATUS_NOT_FOUND = 404;
+	const STATUS_METHOD_NOT_ALLOWED = 405;
+	const STATUS_NOT_ACCEPTABLE = 406;
+	const STATUS_PROXY_AUTHENTICATION_REQUIRED = 407;
+	const STATUS_REQUEST_TIMEOUT = 408;
+	const STATUS_CONFLICT = 409;
+	const STATUS_GONE = 410;
+	const STATUS_LENGTH_REQUIRED = 411;
+	const STATUS_PRECONDITION_FAILED = 412;
+	const STATUS_REQUEST_ENTITY_TOO_LARGE = 413;
+	const STATUS_REQUEST_URI_TOO_LONG = 414;
+	const STATUS_UNSUPPORTED_MEDIA_TYPE = 415;
+	const STATUS_REQUEST_RANGE_NOT_SATISFIABLE = 416;
+	const STATUS_EXPECTATION_FAILED = 417;
+	const STATUS_IM_A_TEAPOT = 418;
+	const STATUS_UNPROCESSABLE_ENTITY = 422;
+	const STATUS_LOCKED = 423;
+	const STATUS_FAILED_DEPENDENCY = 424;
+	const STATUS_UPGRADE_REQUIRED = 426;
+	const STATUS_PRECONDITION_REQUIRED = 428;
+	const STATUS_TOO_MANY_REQUESTS = 429;
+	const STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE = 431;
+	const STATUS_INTERNAL_SERVER_ERROR = 500;
+	const STATUS_NOT_IMPLEMENTED = 501;
+	const STATUS_BAD_GATEWAY = 502;
+	const STATUS_SERVICE_UNAVAILABLE = 503;
+	const STATUS_GATEWAY_TIMEOUT = 504;
+	const STATUS_HTTP_VERSION_NOT_SUPPORTED = 505;
+	const STATUS_VARIANT_ALSO_NEGOTIATES = 506;
+	const STATUS_INSUFFICIENT_STORAGE = 507;
+	const STATUS_LOOP_DETECTED = 508;
+	const STATUS_BANDWIDTH_LIMIT_EXCEEDED = 509;
+	const STATUS_NOT_EXTENDED = 510;
+	const STATUS_NETWORK_AUTHENTICATION_REQUIRED = 511;
+}
diff --git a/lib/appframework/http/jsonresponse.php b/lib/public/appframework/http/jsonresponse.php
similarity index 98%
rename from lib/appframework/http/jsonresponse.php
rename to lib/public/appframework/http/jsonresponse.php
index 750f8a2ad1..085fdbed2f 100644
--- a/lib/appframework/http/jsonresponse.php
+++ b/lib/public/appframework/http/jsonresponse.php
@@ -22,7 +22,7 @@
  */
 
 
-namespace OC\AppFramework\Http;
+namespace OCP\AppFramework\Http;
 
 
 /**
diff --git a/lib/appframework/http/response.php b/lib/public/appframework/http/response.php
similarity index 98%
rename from lib/appframework/http/response.php
rename to lib/public/appframework/http/response.php
index 50778105f2..6447725894 100644
--- a/lib/appframework/http/response.php
+++ b/lib/public/appframework/http/response.php
@@ -22,7 +22,7 @@
  */
 
 
-namespace OC\AppFramework\Http;
+namespace OCP\AppFramework\Http;
 
 
 /**
diff --git a/lib/appframework/http/templateresponse.php b/lib/public/appframework/http/templateresponse.php
similarity index 98%
rename from lib/appframework/http/templateresponse.php
rename to lib/public/appframework/http/templateresponse.php
index 0a32da4b1b..97678c96cb 100644
--- a/lib/appframework/http/templateresponse.php
+++ b/lib/public/appframework/http/templateresponse.php
@@ -22,7 +22,7 @@
  */
 
 
-namespace OC\AppFramework\Http;
+namespace OCP\AppFramework\Http;
 
 use OC\AppFramework\Core\API;
 
-- 
GitLab