Beispiel #1
0
 static function get()
 {
     // This object is a singleton
     if (!isset(espritDBFetcher::$fetcher)) {
         espritDBFetcher::$fetcher = new espritDBFetcher();
     }
     return espritDBFetcher::$fetcher;
 }
 public function getPeople($userId, $groupId, $sortOrder, $filter, $first, $max, $profileDetails, $networkDistance, SecurityToken $token)
 {
     $ids = array();
     switch ($groupId->getType()) {
         case 'all':
         case 'friends':
             $person = $userId->getUserId($token);
             $friendIds = espritDBFetcher::get()->getFriendIds($person);
             if (is_array($friendIds) && count($friendIds)) {
                 $ids = $friendIds;
             }
             break;
         case 'self':
         default:
             $ids[] = $userId->getUserId($token);
             break;
     }
     $allPeople = espritDBFetcher::get()->getPeople($ids, $profileDetails);
     $people = array();
     foreach ($ids as $id) {
         $person = null;
         if (is_array($allPeople) && isset($allPeople[$id])) {
             $person = $allPeople[$id];
             if (!$token->isAnonymous() && $id == $token->getViewerId()) {
                 $person->setIsViewer(true);
             }
             if (!$token->isAnonymous() && $id == $token->getOwnerId()) {
                 $person->setIsOwner(true);
             }
             if (is_array($profileDetails) && count($profileDetails) && !in_array('all', $profileDetails)) {
                 $newPerson = array();
                 $newPerson['isOwner'] = $person->isOwner;
                 $newPerson['isViewer'] = $person->isViewer;
                 $newPerson['name'] = $person->name;
                 foreach ($profileDetails as $field) {
                     if (isset($person->{$field}) && !isset($newPerson[$field])) {
                         $newPerson[$field] = $person->{$field};
                     }
                 }
                 $person = $newPerson;
             }
             $people[] = $person;
         }
     }
     if ($sortOrder == 'name') {
         usort($people, array($this, 'comparator'));
     }
     $totalSize = count($people);
     $last = $first + $max;
     $last = min($last, $totalSize);
     if ($first !== false && $first != null && $last) {
         $people = array_slice($people, $first, $last);
     }
     $collection = new RestfulCollection($people, $first, $totalSize);
     return new ResponseItem(null, null, $collection);
 }
 public function updatePersonData(UserID $userId, GroupId $groupId, $fields, $values, $appId, SecurityToken $token)
 {
     foreach ($fields as $key) {
         if (!espritAppDataService::isValidKey($key)) {
             return new ResponseItem(BAD_REQUEST, "The person app data key had invalid characters", null);
         }
     }
     switch ($groupId->getType()) {
         case 'self':
             foreach ($fields as $key) {
                 $value = isset($values[$key]) ? $values[$key] : null;
                 if (!espritDBFetcher::get()->setAppData($userId->getUserId($token), $key, $value, $appId)) {
                     return new ResponseItem(INTERNAL_ERROR, "Internal server error", null);
                 }
             }
             break;
         default:
             return new ResponseItem(NOT_IMPLEMENTED, "We don't support updating data in batches yet", null);
             break;
     }
     return new ResponseItem(null, null, array());
 }
 public function createActivity(UserId $userId, $activity, SecurityToken $token)
 {
     // TODO: Validate the activity and do any template expanding
     espritDBFetcher::get()->createActivity($userId->getUserId($token), $activity, $token->getAppId());
     return new ResponseItem(null, null, array());
 }