From f9b9fd6b4e44fd733ac14d03b9dbf693efe5fd31 Mon Sep 17 00:00:00 2001 From: "Michael J. Rubinsky" Date: Tue, 20 Jul 2010 18:14:38 -0400 Subject: [PATCH] Use injector for getting Facebook instance --- folks/lib/Friends/facebook.php | 13 +++--- folks/lib/Notification/facebook.php | 12 +++-- turba/lib/Driver/Facebook.php | 87 ++++++++++++++++++++----------------- 3 files changed, 62 insertions(+), 50 deletions(-) diff --git a/folks/lib/Friends/facebook.php b/folks/lib/Friends/facebook.php index 8b7e17b53..c86407a25 100644 --- a/folks/lib/Friends/facebook.php +++ b/folks/lib/Friends/facebook.php @@ -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; diff --git a/folks/lib/Notification/facebook.php b/folks/lib/Notification/facebook.php index 882d3536d..c6c8aacbe 100644 --- a/folks/lib/Notification/facebook.php +++ b/folks/lib/Notification/facebook.php @@ -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); diff --git a/turba/lib/Driver/Facebook.php b/turba/lib/Driver/Facebook.php index 89491da58..e5ac8b3e7 100644 --- a/turba/lib/Driver/Facebook.php +++ b/turba/lib/Driver/Facebook.php @@ -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() -- 2.11.0