Now I remember why I did this - always using the instance variable will
authorMichael J. Rubinsky <mrubinsk@horde.org>
Sat, 28 Feb 2009 22:34:49 +0000 (17:34 -0500)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Sun, 1 Mar 2009 17:44:39 +0000 (12:44 -0500)
break batch processing - we have to pass in the method and the params
if we are going to subclass H_S_F_Request

framework/Service_Facebook/lib/Horde/Service/Facebook/BatchRequest.php
framework/Service_Facebook/lib/Horde/Service/Facebook/Request.php
framework/Service_Facebook/lib/Horde/Service/Facebook/UploadRequest.php

index 34c74e2..58b1107 100644 (file)
@@ -83,6 +83,7 @@ class Horde_Service_Facebook_BatchRequest extends Horde_Service_Facebook_Request
                         'session_key' => $this->_facebook->auth->getSessionKey());
         $json = $this->_postRequest('batch.run', $params);
         $result = json_decode($json, true);
+
         if (is_array($result) && isset($result['error_code'])) {
           throw new Horde_Service_Facebook_Exception($result['error_msg'],
                                                      $result['error_code']);
index a3ebfcd..c4445be 100644 (file)
@@ -33,7 +33,7 @@ class Horde_Service_Facebook_Request
      */
     public function &run()
     {
-        $data = $this->_postRequest();
+        $data = $this->_postRequest($this->_method, $this->_params);
         switch ($this->_facebook->dataFormat) {
         case Horde_Service_Facebook::DATA_FORMAT_JSON:
         case Horde_Service_Facebook::DATA_FORMAT_XML:
@@ -53,13 +53,13 @@ class Horde_Service_Facebook_Request
         return $result;
     }
 
-    protected function _postRequest()
+    protected function _postRequest($method, &$params)
     {
-        $this->_finalizeParams();
+        $this->_finalizeParams($method, $params);
         // TODO: Figure out why passing the array to ->post doesn't work -
         //       we have to manually create the post string or we get an
         //       invalid signature error from FB
-        $post_string = $this->_createPostString($this->_params);
+        $post_string = $this->_createPostString($params);
         $result = $this->_http->post(Horde_Service_Facebook::REST_SERVER_ADDR, $post_string);
         return $result->getBody();
     }
@@ -70,41 +70,41 @@ class Horde_Service_Facebook_Request
      * @param $params
      * @return unknown_type
      */
-    protected function _finalizeParams()
+    protected function _finalizeParams($method, &$params)
     {
-        $this->_addStandardParams();
+        $this->_addStandardParams($method, $params);
         // we need to do this before signing the params
-        $this->_convertToCsv();
-        $this->_params['sig'] = Horde_Service_Facebook_Auth::generateSignature($this->_params, $this->_facebook->secret);
+        $this->_convertToCsv($params);
+        $params['sig'] = Horde_Service_Facebook_Auth::generateSignature($params, $this->_facebook->secret);
     }
 
-    protected function _addStandardParams()
+    protected function _addStandardParams($method, &$params)
     {
         // Select the correct data format.
         if ($this->_facebook->dataFormat == Horde_Service_Facebook::DATA_FORMAT_ARRAY) {
-            $this->_params['format'] = $this->_facebook->internalFormat;
+            $params['format'] = $this->_facebook->internalFormat;
         } else {
-            $this->_params['format'] = $this->_facebook->dataFormat;
+            $params['format'] = $this->_facebook->dataFormat;
         }
 
-        $this->_params['method'] = $this->_method;
-        $this->_params['api_key'] = $this->_facebook->apiKey;
-        $this->_params['call_id'] = microtime(true);
-        if ($this->_params['call_id'] <= $this->_last_call_id) {
-            $this->_params['call_id'] = $this->_last_call_id + 0.001;
+        $params['method'] = $method;
+        $params['api_key'] = $this->_facebook->apiKey;
+        $params['call_id'] = microtime(true);
+        if ($params['call_id'] <= $this->_last_call_id) {
+            $params['call_id'] = $this->_last_call_id + 0.001;
         }
-        $this->_last_call_id = $this->_params['call_id'];
-        if (!isset($this->_params['v'])) {
-            $this->_params['v'] = '1.0';
+        $this->_last_call_id = $params['call_id'];
+        if (!isset($params['v'])) {
+            $params['v'] = '1.0';
         }
         if (!empty($this->_facebook->useSslResources)) {
-            $this->_params['return_ssl_resources'] = true;
+            $params['return_ssl_resources'] = true;
         }
     }
 
-    protected function _convertToCsv()
+    protected function _convertToCsv(&$params)
     {
-        foreach ($this->_params as $key => &$val) {
+        foreach ($params as $key => &$val) {
             if (is_array($val)) {
                 $val = implode(',', $val);
             }
index 087c9b6..32d9820 100644 (file)
@@ -47,7 +47,7 @@ class Horde_Service_Facebook_UploadRequest extends Horde_Service_Facebook_Reques
         $delimiter = '--' . $boundary;
         $close_delimiter = $delimiter . '--';
         $content_lines = array();
-        $this->_finalizeParams();
+        $this->_finalizeParams($this->_method, $this->_params);
         foreach ($this->_params as $key => &$val) {
             $content_lines[] = $delimiter;
             $content_lines[] = 'Content-Disposition: form-data; name="' . $key . '"';