public function executeIndex(sfWebRequest $request) { $auth_key = $this->getUser()->getApiAuthKey(); $sent_data = Api::getInstance()->setUser($auth_key)->get('message?sender_id=' . $this->getUser()->getApiUserId(), true); $this->sent_messages = ApiDoctrine::createQuickObjectArray($sent_data['body']); $received_data = Api::getInstance()->setUser($auth_key)->get('message?recipient_id=' . $this->getUser()->getApiUserId(), true); $this->received_messages = ApiDoctrine::createQuickObjectArray($received_data['body']); // Grab users $users = array(); foreach ($this->sent_messages as $message) { if (!in_array($message->getRecipientId(), $users)) { $users[] = $message->getRecipientId(); } } foreach ($this->received_messages as $message) { if (!in_array($message->getSenderId(), $users)) { $users[] = $message->getSenderId(); } } $user_data = Api::getInstance()->setUser($auth_key)->get('user?id=' . implode(',', $users), true); $users = ApiDoctrine::createQuickObjectArray($user_data['body']); $this->users = array(); foreach ($users as $user) { $this->users[$user->getIncremented()] = $user; } $user_data = Api::getInstance()->setUser($auth_key)->get('user/' . $this->getUser()->getApiUserId(), true); $this->user = ApiDoctrine::createQuickObject($user_data['body']); }
protected function getIndexEpisodes() { $subreddit_ids = array(); $subreddit_data = Api::getInstance()->get('subreddit/defaultfeed', true); $subreddits = ApiDoctrine::createQuickObjectArray($subreddit_data['body']); foreach ($subreddits as $subreddit) { if (!in_array($subreddit->getIncremented(), $subreddit_ids)) { $subreddit_ids[] = $subreddit->getIncremented(); } } $episodes = array(); if (count($subreddit_ids)) { $episode_data = Api::getInstance()->get('episode/released?nwfw=&subreddit_id=' . implode(',', $subreddit_ids), true); $episodes = ApiDoctrine::createObjectArray('Episode', $episode_data['body']); } return $episodes; }
public function executeUpdate(sfWebRequest $request) { // Clear pluploader session variables $this->getUser()->getAttributeHolder()->remove('valid_episode'); $this->getUser()->getAttributeHolder()->remove('valid_episode_id'); $this->getUser()->getAttributeHolder()->remove('valid_episode_user_id'); $this->getUser()->getAttributeHolder()->remove('valid_episode_audio_file_hash'); $this->getUser()->getAttributeHolder()->remove('valid_episode_image_file_hash'); $this->getUser()->getAttributeHolder()->remove('valid_episode_user_id'); $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT)); $auth_key = $this->getUser()->getApiAuthKey(); $episode_data = Api::getInstance()->setUser($auth_key)->get('episode/' . $request->getParameter('id'), true); $episode = ApiDoctrine::createObject('Episode', $episode_data['body']); $quick_episode = ApiDoctrine::createQuickObject($episode_data['body']); $this->forward404Unless($episode && $episode->getId()); $permission = $this->verifyPermissionsForCurrentUser($quick_episode->getSubredditId(), array('admin')); $assignment_data = Api::getInstance()->setUser($auth_key)->get('episodeassignment/' . $quick_episode->getEpisodeAssignmentId(), true); $assignment = ApiDoctrine::createQuickObject($assignment_data['body']); $this->forward404Unless($permission || $assignment && $assignment->getSfGuardUserId() == $this->getUser()->getApiUserId()); $episode->setIsNsfw($quick_episode->getIsNsfw()); $phone_data = Api::getInstance()->setUser($auth_key)->get('subreddittropo?subreddit_id=' . $episode->getSubredditId(), true); $this->phone_numbers = ApiDoctrine::createQuickObjectArray($phone_data['body']); $this->form = new EpisodeForm($episode); $this->form->setDefault('is_nsfw', $quick_episode->getIsNsfw()); unset($this->form['sf_guard_user_id']); unset($this->form['file_is_remote']); unset($this->form['remote_url']); unset($this->form['approved_at']); unset($this->form['nice_filename']); if (!$permission && $this->form->getObject()->getApprovedAt()) { unset($this->form['title'], $this->form['description']); } if (!$permission && !$this->form->getObject()->getApprovedAt()) { unset($this->form['reddit_post_url']); } $this->processForm($request, $this->form); $this->setTemplate('edit'); }
public function executeEpisodes(sfWebRequest $request) { $user_id = $this->getUser()->getApiUserId(); $this->forward404Unless($user_id); $user_data = Api::getInstance()->get('user/' . $user_id); $this->user = ApiDoctrine::createQuickObject($user_data['body']); $page = $this->page = (int) $request->getParameter('page', 1); $this->forward404Unless(is_integer($page)); $page = $page == 1 || $page == 0 ? '' : '&page=' . $page; $subreddit_ids = array(); $released_data = Api::getInstance()->get('episodeassignment/released?sf_guard_user_id=' . $user_id . $page); $this->released = ApiDoctrine::createObjectArray('EpisodeAssignment', $released_data['body']); $future_data = Api::getInstance()->get('episodeassignment/future?sf_guard_user_id=' . $user_id); $this->future = ApiDoctrine::createObjectArray('EpisodeAssignment', $future_data['body']); $current_data = Api::getInstance()->get('episodeassignment/current?sf_guard_user_id=' . $user_id); $this->current = ApiDoctrine::createObjectArray('EpisodeAssignment', $current_data['body']); foreach ($this->future as $assignment) { if (!in_array($assignment->getEpisode()->getSubredditId(), $subreddit_ids)) { $subreddit_ids[] = $assignment->getEpisode()->getSubredditId(); } } foreach ($this->current as $assignment) { if (!in_array($assignment->getEpisode()->getSubredditId(), $subreddit_ids)) { $subreddit_ids[] = $assignment->getEpisode()->getSubredditId(); } } foreach ($this->released as $assignment) { if (!in_array($assignment->getEpisode()->getSubredditId(), $subreddit_ids)) { $subreddit_ids[] = $assignment->getEpisode()->getSubredditId(); } } $memberships = array(); $moderator_data = Api::getInstance()->get('membershiptype?type=moderator', true); $membership_objects = ApiDoctrine::createQuickObjectArray($moderator_data['body']); foreach ($membership_objects as $membershiptype) { $memberships[] = $membershiptype->getIncremented(); } $admin_data = Api::getInstance()->get('membershiptype?type=admin', true); $membership_objects = ApiDoctrine::createQuickObjectArray($admin_data['body']); foreach ($membership_objects as $membershiptype) { $memberships[] = $membershiptype->getIncremented(); } $approval_data = Api::getInstance()->get('subredditmembership?sf_guard_user_id=' . $this->getUser()->getApiUserId() . '&membership_id=' . implode(',', $memberships), true); $approval_memberships = ApiDoctrine::createQuickObjectArray($approval_data['body']); $this->approvals = array(); if (count($approval_memberships)) { $approval_subreddits = array(); foreach ($approval_memberships as $membership) { $approval_subreddits[] = $membership->getSubredditId(); if (!in_array($membership->getSubredditId(), $subreddit_ids)) { $subreddit_ids[] = $membership->getSubredditId(); } } $approval_episode_data = Api::getInstance()->get('episode/future?is_submitted=1&is_approved=0&subreddit_id=' . implode(',', $approval_subreddits)); $this->approvals = ApiDoctrine::createQuickObjectArray($approval_episode_data['body']); } $subreddit_data = Api::getInstance()->get('subreddit?id=' . implode(',', $subreddit_ids), true); $subreddits = ApiDoctrine::createQuickObjectArray($subreddit_data['body']); $this->subreddits = array(); foreach ($subreddits as $subreddit) { $this->subreddits[$subreddit->getId()] = $subreddit; } $deadline_data = Api::getInstance()->get('subredditdeadline?subreddit_id=' . implode(',', $subreddit_ids), true); $deadlines = ApiDoctrine::createQuickObjectArray($deadline_data['body']); $this->deadlines = array(); foreach ($deadlines as $deadline) { if (!array_key_exists($deadline->getSubredditId(), $this->deadlines)) { $this->deadlines[$deadline->getSubredditId()] = array(); } $this->deadlines[$deadline->getSubredditId()][$deadline->getAuthorTypeId()] = $deadline->getSeconds(); } }
protected function getIndexEpisodes() { $subreddit_ids = array(); $subreddit_data = Api::getInstance()->get('subreddit/defaultfeed', true); $subreddits = ApiDoctrine::createQuickObjectArray($subreddit_data['body']); foreach ($subreddits as $subreddit) { if (!in_array($subreddit->getIncremented(), $subreddit_ids)) { $subreddit_ids[] = $subreddit->getIncremented(); } } $episodes = array(); if (count($subreddit_ids)) { $episode_data = Api::getInstance()->get($this->_episode_location . '?subreddit_id=' . implode(',', $subreddit_ids), true); $episodes = ApiDoctrine::createQuickObjectArray($episode_data['body']); } $assignment_ids = array(); foreach ($episodes as $episode) { if (!in_array($episode->getEpisodeAssignmentId(), $assignment_ids)) { $assignment_ids[] = $episode->getEpisodeAssignmentId(); } } $assignment_data = Api::getInstance()->get('episodeassignment?id=' . implode(',', $assignment_ids), true); $assignments = ApiDoctrine::createQuickObjectArray($assignment_data['body']); $user_ids = array(); $this->_assignments = array(); foreach ($assignments as $assignment) { $this->_assignments[$assignment->getIncremented()] = $assignment; if (!in_array($assignment->getSfGuardUserId(), $user_ids)) { $user_ids[] = $assignment->getSfGuardUserId(); } } $user_data = Api::getInstance()->get('user?id=' . implode(',', $user_ids), true); $users = ApiDoctrine::createQuickObjectArray($user_data['body']); $this->_users = array(); foreach ($users as $user) { $this->_users[$user->getIncremented()] = $user; } return $episodes; }
public function executeShow(sfWebRequest $request) { $auth_key = $this->getUser()->getApiAuthKey(); $page = $this->page = (int) $request->getParameter('page', 1); $this->forward404Unless(is_integer($page)); $page = $page == 1 || $page == 0 ? '' : '&page=' . $page; $this->getSubredditId($request); $episodes_data = Api::getInstance()->setUser($auth_key)->get('episode/released?subreddit_id=' . $this->subreddit_id . $page, true); $this->episodes = ApiDoctrine::createQuickObjectArray($episodes_data['body']); $membership_data = Api::getInstance()->setUser($auth_key)->get('subredditmembership?sf_guard_user_id=' . $this->getUser()->getApiUserId() . '&subreddit_id=' . $this->subreddit_id, true); $this->membership = array_key_exists(0, $membership_data['body']) ? ApiDoctrine::createQuickObject($membership_data['body'][0]) : null; }