From 24ecf02e7b158ade91efdcae3b791f9d0c8401e4 Mon Sep 17 00:00:00 2001
From: Dmitriy Simushev <simushevds@ossg.ru>
Date: Thu, 27 Sep 2012 11:37:29 +0000
Subject: [PATCH] Remove RequestProcessor::NO_RESULT_FUNCTION constant

RequestProcessor::NO_RESULT_FUNCTION not use any more. Rewrite code
to throw use Mibew API checks for existance of the result function
---
 .../webim/libs/classes/request_processor.php  | 51 +++++++------------
 1 file changed, 18 insertions(+), 33 deletions(-)

diff --git a/src/messenger/webim/libs/classes/request_processor.php b/src/messenger/webim/libs/classes/request_processor.php
index 91ad67bc..5128bc3b 100644
--- a/src/messenger/webim/libs/classes/request_processor.php
+++ b/src/messenger/webim/libs/classes/request_processor.php
@@ -131,29 +131,25 @@ abstract class RequestProcessor {
 					// Try to load callback function for this token
 					$callback = $this->loadCallback($request['token']);
 
-					// Try to get result function
-					$result_function = $this->mibewAPI->getResultFunction($request['functions']);
-
-					// Callback exists but result function does not
-					if (! is_null($callback) && is_null($result_function)) {
-						throw new RequestProcessorException(
-							"There is no 'result' function in request",
-							RequestProcessorException::NO_RESULT_FUNCTION
-						);
-					}
-
-					if (! is_null($result_function)) {
-						if (! is_null($callback)) {
-							// There are callback function and result function
-							$arguments = $this->processRequest($request, true);
-							$function = $callback['function'];
-							$arguments += empty($callback['arguments'])
-								? array()
-								: $callback['arguments'];
-							call_user_func_array($function, array($arguments));
-						}
+					if (! is_null($callback)) {
+						// There is callback function. Try to get result arguments
+						$arguments = $this->processRequest($request, true);
+						$function = $callback['function'];
+						$arguments += empty($callback['arguments'])
+							? array()
+							: $callback['arguments'];
+						call_user_func_array($function, array($arguments));
 						return true;
 					} else {
+						// Try to get result function
+						$result_function = $this->mibewAPI->getResultFunction($request['functions']);
+
+						if (! is_null($result_function)) {
+							// There is result function but no callback
+							return true;
+						}
+
+						// There is no result function
 						// Process request
 						$arguments = $this->processRequest($request, false);
 						// Send response
@@ -251,13 +247,6 @@ abstract class RequestProcessor {
 					$result = $this->processRequest($request, true);
 				}
 			}
-
-			if (is_null($result)) {
-				throw new RequestProcessorException(
-					"There is no 'result' function in response",
-					RequestProcessorException::NO_RESULT_FUNCTION
-				);
-			}
 		} catch (Exception $e) {
 			// Trigger error event
 			$vars = array('exception' => $e);
@@ -487,14 +476,10 @@ abstract class RequestProcessor {
 }
 
 class RequestProcessorException extends Exception {
-	/**
-	 * Result function is absent
-	 */
-	const NO_RESULT_FUNCTION = 1;
 	/**
 	 * Wrong function arguments
 	 */
-	const WRONG_ARGUMENTS = 2;
+	const WRONG_ARGUMENTS = 1;
 }
 
 ?>
\ No newline at end of file