Make AphrontProxyResponse reduce to a real response instead of building a string
Summary: Currently, AphrontProxyResponse is expected to build a string. This prevents some response types (like Dialog) from being proxied, because they have special rules. Instead, make proxy responses reduce into a non-proxied response so it's possible to proxy any type of response and hit all the normal rules for it. Test Plan: Built a proxied DialogResponse on top of this. Reviewers: btrahan, vrana Reviewed By: btrahan CC: aran Maniphest Tasks: T2104, T912 Differential Revision: https://secure.phabricator.com/D4159
This commit is contained in:
@@ -5,8 +5,8 @@
|
||||
* a response might be substantially an Ajax response, but add structure to the
|
||||
* response content. It can do this by extending @{class:AphrontProxyResponse},
|
||||
* instantiating an @{class:AphrontAjaxResponse} in @{method:buildProxy}, and
|
||||
* then using the proxy to construct the response string in
|
||||
* @{method:buildResponseString}.
|
||||
* then constructing a real @{class:AphrontAjaxResponse} in
|
||||
* @{method:reduceProxyResponse}.
|
||||
*
|
||||
* @group aphront
|
||||
*/
|
||||
@@ -63,5 +63,12 @@ abstract class AphrontProxyResponse extends AphrontResponse {
|
||||
}
|
||||
|
||||
abstract protected function buildProxy();
|
||||
abstract public function reduceProxyResponse();
|
||||
|
||||
final public function buildResponseString() {
|
||||
throw new Exception(
|
||||
"AphrontProxyResponse must implement reduceProxyResponse().");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user