Use injector for getting Facebook instance
authorMichael J. Rubinsky <mrubinsk@horde.org>
Tue, 20 Jul 2010 22:14:38 +0000 (18:14 -0400)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Tue, 20 Jul 2010 22:14:38 +0000 (18:14 -0400)
folks/lib/Friends/facebook.php
folks/lib/Notification/facebook.php
turba/lib/Driver/Facebook.php

index 8b7e17b..c86407a 100644 (file)
@@ -79,13 +79,14 @@ class Folks_Friends_facebook extends Folks_Friends {
             return false;
         }
 
-        $context = array('http_client' => new Horde_Http_Client(),
-                         'http_request' => $GLOBALS['injector']->getInstance('Horde_Controller_Request'));
-
-        $this->_fb = new Horde_Service_Facebook($conf['facebook']['key'],
-                                               $conf['facebook']['secret'],
-                                               $context);
+        try {
+            $facebook = $GLOBALS['injector']->getInstance('Horde_Service_Facebook');
+        } catch (Horde_Exception $e) {
+            $error = PEAR::raiseError($e->getMessage(), $e->getCode());
+            Horde::logMessage($error, 'ERR');
 
+            return $error;
+        }
         $this->_fb->auth->setUser($fbp['uid'], $fbp['sid'], 0);
 
         return true;
index 882d353..c6c8aac 100644 (file)
@@ -136,10 +136,14 @@ class Folks_Notification_facebook extends Folks_Notification {
         }
 
         // Create FB Object
-        $this->_fb = new Horde_Service_Facebook($GLOBALS['conf']['facebook']['key'],
-                                                $GLOBALS['conf']['facebook']['secret'],
-                                                array('http_client' => new Horde_Http_Client(),
-                                                      'http_request' => $GLOBALS['injector']->getInstance('Horde_Controller_Request')));
+        try {
+            $this->_fb = $GLOBALS['injector']->getInstance('Horde_Service_Facebook');
+        } catch (Horde_Exception $e) {
+            $error = PEAR::raiseError($e->getMessage(), $e->getCode());
+            Horde::logMessage($error, 'ERR');
+
+            return $error;
+        }
 
         // Set Auth user
         $this->_fb->auth->setUser($this->_fbp['uid'], $this->_fbp['sid'], 0);
index 89491da..e5ac8b3 100644 (file)
@@ -115,56 +115,63 @@ class Turba_Driver_Facebook extends Turba_Driver
 
     function _getEntry($keys, $fields)
     {
-        if (!is_a($facebook = $this->_getFacebook(), 'PEAR_Error')) {
-            $fields = implode(', ', $fields);
-            $fql = 'SELECT ' . $fields . ' FROM user WHERE uid IN (' . implode(', ', $keys) . ')';
+        try {
+            $facebook = $GLOBALS['injector']->getInstance('Horde_Service_Facebook');
+        } catch (Horde_Exception $e) {
+            $error = PEAR::raiseError($e->getMessage(), $e->getCode());
+            Horde::logMessage($error, 'ERR');
 
-            try {
-                $results = $facebook->fql->run($fql);
-            } catch (Horde_Service_Facebook_Exception $e) {
-                $error = PEAR::raiseError($e->getMessage(), $e->getCode());
-                Horde::logMessage($error, 'ERR');
-
-                return $error;
-            }
+            return $error;
+        }
+        $fields = implode(', ', $fields);
+        $fql = 'SELECT ' . $fields . ' FROM user WHERE uid IN (' . implode(', ', $keys) . ')';
 
-            return $results;
-        } else {
+        try {
+            $results = $facebook->fql->run($fql);
+        } catch (Horde_Service_Facebook_Exception $e) {
+            $error = PEAR::raiseError($e->getMessage(), $e->getCode());
+            Horde::logMessage($error, 'ERR');
 
-            return $facebook;
+            return $error;
         }
+
+        return $results;
     }
 
     function _getAddressBook($fields = array())
     {
-        if (!is_a($facebook = $this->_getFacebook(), 'PEAR_Error')) {
-            $fields = implode(', ', $fields);
-            // For now, just try a fql query with name and email.
-            $fql = 'SELECT ' . $fields . ' FROM user WHERE uid IN ('
-                . 'SELECT uid2 FROM friend WHERE uid1=' . $facebook->auth->getUser() . ')';
-
-            try {
-                $results = $facebook->fql->run($fql);
-            } catch (Horde_Service_Facebook_Exception $e) {
-                $error = PEAR::raiseError($e->getMessage(), $e->getCode());
-                Horde::logMessage($error, 'ERR');
-                return array();
-            }
-            $addressbook = array();
-            foreach ($results as $result) {
-                if (!empty($result['birthday'])) {
-                    // Make sure the birthdate is in a standard format that
-                    // listDateObjects will understand.
-                    $bday = new Horde_Date($result['birthday']);
-                    $result['birthday'] = $bday->format('Y-m-d');
-                }
-                $addressbook[$result['uid']] = $result;
-            }
+        try {
+            $facebook = $GLOBALS['injector']->getInstance('Horde_Service_Facebook');
+        } catch (Horde_Exception $e) {
+            $error = PEAR::raiseError($e->getMessage(), $e->getCode());
+            Horde::logMessage($error, 'ERR');
 
-            return $addressbook;
-        } else {
-            return $facebook;
+            return $error;
+        }
+        $fields = implode(', ', $fields);
+        // For now, just try a fql query with name and email.
+        $fql = 'SELECT ' . $fields . ' FROM user WHERE uid IN ('
+            . 'SELECT uid2 FROM friend WHERE uid1=' . $facebook->auth->getUser() . ')';
+
+        try {
+            $results = $facebook->fql->run($fql);
+        } catch (Horde_Service_Facebook_Exception $e) {
+            $error = PEAR::raiseError($e->getMessage(), $e->getCode());
+            Horde::logMessage($error, 'ERR');
+            return array();
         }
+        $addressbook = array();
+        foreach ($results as $result) {
+            if (!empty($result['birthday'])) {
+                // Make sure the birthdate is in a standard format that
+                // listDateObjects will understand.
+                $bday = new Horde_Date($result['birthday']);
+                $result['birthday'] = $bday->format('Y-m-d');
+            }
+            $addressbook[$result['uid']] = $result;
+        }
+
+        return $addressbook;
     }
 
     function _getFacebook()