protected function execute(ConduitAPIRequest $request) { $query = new PhamePostQuery(); $query->setViewer($request->getUser()); $ids = $request->getValue('ids', array()); if ($ids) { $query->withIDs($ids); } $phids = $request->getValue('phids', array()); if ($phids) { $query->withPHIDs($phids); } $blog_phids = $request->getValue('blogPHIDs', array()); if ($blog_phids) { $query->withBlogPHIDs($blog_phids); } $blogger_phids = $request->getValue('bloggerPHIDs', array()); if ($blogger_phids) { $query->withBloggerPHIDs($blogger_phids); } $phame_titles = $request->getValue('phameTitles', array()); if ($phame_titles) { $query->withPhameTitles($phame_titles); } $published = $request->getValue('published', null); if ($published === true) { $query->withVisibility(PhameConstants::VISIBILITY_PUBLISHED); } else { if ($published === false) { $query->withVisibility(PhameConstants::VISIBILITY_DRAFT); } } $published_after = $request->getValue('publishedAfter', null); if ($published_after !== null) { $query->withPublishedAfter($published_after); } $after = $request->getValue('after', null); if ($after !== null) { $query->setAfterID($after); } $before = $request->getValue('before', null); if ($before !== null) { $query->setBeforeID($before); } $limit = $request->getValue('limit', null); if ($limit !== null) { $query->setLimit($limit); } $posts = $query->execute(); $results = array(); foreach ($posts as $post) { $results[] = $post->toDictionary(); } return $results; }
public function processRequest() { $user = $this->getRequest()->getUser(); $query = new PhamePostQuery(); $query->withVisibility(PhamePost::VISIBILITY_PUBLISHED); $this->setPhamePostQuery($query); $this->setActions(array('view')); $page_title = 'All Posts'; $this->setPageTitle($page_title); $this->setShowSideNav(true); return $this->buildPostListPageResponse(); }
public function processRequest() { $user = $this->getRequest()->getUser(); $phid = $user->getPHID(); $query = new PhamePostQuery(); $query->withBloggerPHID($phid); $query->withVisibility(PhamePost::VISIBILITY_DRAFT); $this->setPhamePostQuery($query); $actions = array('view', 'edit'); $this->setActions($actions); $this->setPageTitle('My Drafts'); $this->setShowSideNav(true); return $this->buildPostListPageResponse(); }
public function processRequest() { $user = $this->getRequest()->getUser(); $blogger = id(new PhabricatorUser())->loadOneWhere('username = %s', $this->getBloggerName()); if (!$blogger) { return new Aphront404Response(); } $blogger_phid = $blogger->getPHID(); if ($blogger_phid == $user->getPHID()) { $actions = array('view', 'edit'); } else { $actions = array('view'); } $this->setActions($actions); $query = new PhamePostQuery(); $query->withBloggerPHID($blogger_phid); $query->withVisibility(PhamePost::VISIBILITY_PUBLISHED); $this->setPhamePostQuery($query); $page_title = 'Posts by ' . $this->getBloggerName(); $this->setPageTitle($page_title); $this->setShowSideNav(false); return $this->buildPostListPageResponse(); }
public function processRequest() { $request = $this->getRequest(); $user = $request->getUser(); $pager = new AphrontPagerView(); $page_size = 50; $pager->setURI($request->getRequestURI(), 'offset'); $pager->setPageSize($page_size); $pager->setOffset($request->getInt('offset')); if ($this->getBloggerName()) { $blogger = id(new PhabricatorUser())->loadOneWhere('username = %s', $this->getBloggerName()); if (!$blogger) { return new Aphront404Response(); } $page_title = 'Posts by ' . $this->getBloggerName(); if ($blogger->getPHID() == $user->getPHID()) { $actions = array('view', 'edit'); } else { $actions = array('view'); } $this->setShowSideNav(false); } else { $blogger = $user; $page_title = 'Posts by ' . $user->getUserName(); $actions = array('view', 'edit'); $this->setShowSideNav(true); } $phid = $blogger->getPHID(); // user gets to see their own unpublished stuff if ($phid == $user->getPHID() && $this->isDraft()) { $post_visibility = PhamePost::VISIBILITY_DRAFT; } else { $post_visibility = PhamePost::VISIBILITY_PUBLISHED; } $query = new PhamePostQuery(); $query->withBloggerPHID($phid); $query->withVisibility($post_visibility); $posts = $query->executeWithPager($pager); $bloggers = array($blogger->getPHID() => $blogger); $panel = id(new PhamePostListView())->setUser($user)->setBloggers($bloggers)->setPosts($posts)->setActions($actions)->setDraftList($this->isDraft()); return $this->buildStandardPageResponse(array($panel, $pager), array('title' => $page_title)); }