Page MenuHomePhabricator

D7478.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -195,6 +195,9 @@
'ConduitAPI_paste_create_Method' => 'applications/paste/conduit/ConduitAPI_paste_create_Method.php',
'ConduitAPI_paste_info_Method' => 'applications/paste/conduit/ConduitAPI_paste_info_Method.php',
'ConduitAPI_paste_query_Method' => 'applications/paste/conduit/ConduitAPI_paste_query_Method.php',
+ 'ConduitAPI_phame_Method' => 'applications/phame/conduit/ConduitAPI_phame_Method.php',
+ 'ConduitAPI_phame_query_Method' => 'applications/phame/conduit/ConduitAPI_phame_query_Method.php',
+ 'ConduitAPI_phame_queryposts_Method' => 'applications/phame/conduit/ConduitAPI_phame_queryposts_Method.php',
'ConduitAPI_phid_Method' => 'applications/phid/conduit/ConduitAPI_phid_Method.php',
'ConduitAPI_phid_info_Method' => 'applications/phid/conduit/ConduitAPI_phid_info_Method.php',
'ConduitAPI_phid_lookup_Method' => 'applications/phid/conduit/ConduitAPI_phid_lookup_Method.php',
@@ -2406,6 +2409,9 @@
'ConduitAPI_paste_create_Method' => 'ConduitAPI_paste_Method',
'ConduitAPI_paste_info_Method' => 'ConduitAPI_paste_Method',
'ConduitAPI_paste_query_Method' => 'ConduitAPI_paste_Method',
+ 'ConduitAPI_phame_Method' => 'ConduitAPIMethod',
+ 'ConduitAPI_phame_query_Method' => 'ConduitAPI_phame_Method',
+ 'ConduitAPI_phame_queryposts_Method' => 'ConduitAPI_phame_Method',
'ConduitAPI_phid_Method' => 'ConduitAPIMethod',
'ConduitAPI_phid_info_Method' => 'ConduitAPI_phid_Method',
'ConduitAPI_phid_lookup_Method' => 'ConduitAPI_phid_Method',
diff --git a/src/applications/phame/conduit/ConduitAPI_phame_Method.php b/src/applications/phame/conduit/ConduitAPI_phame_Method.php
new file mode 100644
--- /dev/null
+++ b/src/applications/phame/conduit/ConduitAPI_phame_Method.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * @group conduit
+ */
+abstract class ConduitAPI_phame_Method extends ConduitAPIMethod {
+
+ public function getApplication() {
+ return PhabricatorApplication::getByClass('PhabricatorApplicationPhame');
+ }
+
+}
diff --git a/src/applications/phame/conduit/ConduitAPI_phame_query_Method.php b/src/applications/phame/conduit/ConduitAPI_phame_query_Method.php
new file mode 100644
--- /dev/null
+++ b/src/applications/phame/conduit/ConduitAPI_phame_query_Method.php
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * @group conduit
+ */
+final class ConduitAPI_phame_query_Method extends ConduitAPI_phame_Method {
+
+ public function getMethodDescription() {
+ return "Query phame blogs.";
+ }
+
+ public function getMethodStatus() {
+ return self::METHOD_STATUS_UNSTABLE;
+ }
+
+ public function defineParamTypes() {
+ return array(
+ 'ids' => 'optional list<int>',
+ 'phids' => 'optional list<phid>',
+ 'after' => 'optional int',
+ 'before' => 'optional int',
+ 'limit' => 'optional int',
+ );
+ }
+
+ public function defineReturnType() {
+ return 'list<dict>';
+ }
+
+ public function defineErrorTypes() {
+ return array(
+ );
+ }
+
+ protected function execute(ConduitAPIRequest $request) {
+
+ $query = new PhameBlogQuery();
+
+ $query->setViewer($request->getUser());
+
+ $ids = $request->getValue('ids', array());
+ if ($ids) {
+ $query->withIDs($ids);
+ }
+
+ $phids = $request->getValue('phids', array());
+ if ($phids) {
+ $query->withPHIDs($phids);
+ }
+
+ $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);
+ }
+
+ $blogs = $query->execute();
+
+ $results = array();
+ foreach ($blogs as $blog) {
+ $results[] = array(
+ 'id' => $blog->getID(),
+ 'phid' => $blog->getPHID(),
+ 'name' => $blog->getName(),
+ 'description' => $blog->getDescription(),
+ 'domain' => $blog->getDomain(),
+ 'creatorPHID' => $blog->getCreatorPHID(),
+ );
+ }
+
+ return $results;
+ }
+
+
+}
diff --git a/src/applications/phame/conduit/ConduitAPI_phame_queryposts_Method.php b/src/applications/phame/conduit/ConduitAPI_phame_queryposts_Method.php
new file mode 100644
--- /dev/null
+++ b/src/applications/phame/conduit/ConduitAPI_phame_queryposts_Method.php
@@ -0,0 +1,121 @@
+<?php
+
+/**
+ * @group conduit
+ */
+final class ConduitAPI_phame_queryposts_Method extends ConduitAPI_phame_Method {
+
+ public function getMethodDescription() {
+ return "Query phame posts.";
+ }
+
+ public function getMethodStatus() {
+ return self::METHOD_STATUS_UNSTABLE;
+ }
+
+ public function defineParamTypes() {
+ return array(
+ 'ids' => 'optional list<int>',
+ 'phids' => 'optional list<phid>',
+ 'blogPHIDs' => 'optional list<phid>',
+ 'bloggerPHIDs' => 'optional list<phid>',
+ 'phameTitles' => 'optional list<string>',
+ 'published' => 'optional bool',
+ 'publishedAfter' => 'optional date',
+ 'before' => 'optional int',
+ 'after' => 'optional int',
+ 'limit' => 'optional int',
+ );
+ }
+
+ public function defineReturnType() {
+ return 'list<dict>';
+ }
+
+ public function defineErrorTypes() {
+ return array(
+ );
+ }
+
+ 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(PhamePost::VISIBILITY_PUBLISHED);
+ } else if ($published === false) {
+ $query->withVisibility(PhamePost::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);
+ }
+
+ $blogs = $query->execute();
+
+ $results = array();
+ foreach ($blogs as $blog) {
+ $results[] = array(
+ 'id' => $blog->getID(),
+ 'phid' => $blog->getPHID(),
+ 'blogPHID' => $blog->getBlogPHID(),
+ 'bloggerPHID' => $blog->getBloggerPHID(),
+ 'viewURI' => $blog->getViewURI(),
+ 'title' => $blog->getTitle(),
+ 'phameTitle' => $blog->getPhameTitle(),
+ 'body' => $blog->getBody(),
+ 'summary' => PhabricatorMarkupEngine::summarize($blog->getBody()),
+ 'datePublished' => $blog->getDatePublished(),
+ 'published' => !$blog->isDraft(),
+ );
+ }
+
+ return $results;
+ }
+
+
+}

File Metadata

Mime Type
text/x-diff
Storage Engine
amazon-s3
Storage Format
Raw Data
Storage Handle
phabricator/b5/ux/gzqpmnsurik7uar3
Default Alt Text
D7478.diff (7 KB)

Event Timeline