Skip to content

Commit 9518a1a

Browse files
author
lkassianik
committedApr 5, 2016
Add badges.edit and badges.search to Conduit API
Summary: Ref T10671 Test Plan: Open Conduit application, open `badges.edit` or `badges.search`, create, edit, or query for a badge. Reviewers: epriestley, #blessed_reviewers Reviewed By: epriestley, #blessed_reviewers Subscribers: Korvin Maniphest Tasks: T10671 Differential Revision: https://secure.phabricator.com/D15622
1 parent 1914ea2 commit 9518a1a

6 files changed

+84
-2
lines changed
 

‎src/__phutil_library_map__.php

+5
Original file line numberDiff line numberDiff line change
@@ -1878,6 +1878,7 @@
18781878
'PhabricatorBadgesCreateCapability' => 'applications/badges/capability/PhabricatorBadgesCreateCapability.php',
18791879
'PhabricatorBadgesDAO' => 'applications/badges/storage/PhabricatorBadgesDAO.php',
18801880
'PhabricatorBadgesDefaultEditCapability' => 'applications/badges/capability/PhabricatorBadgesDefaultEditCapability.php',
1881+
'PhabricatorBadgesEditConduitAPIMethod' => 'applications/badges/conduit/PhabricatorBadgesEditConduitAPIMethod.php',
18811882
'PhabricatorBadgesEditController' => 'applications/badges/controller/PhabricatorBadgesEditController.php',
18821883
'PhabricatorBadgesEditEngine' => 'applications/badges/editor/PhabricatorBadgesEditEngine.php',
18831884
'PhabricatorBadgesEditRecipientsController' => 'applications/badges/controller/PhabricatorBadgesEditRecipientsController.php',
@@ -1892,6 +1893,7 @@
18921893
'PhabricatorBadgesRemoveRecipientsController' => 'applications/badges/controller/PhabricatorBadgesRemoveRecipientsController.php',
18931894
'PhabricatorBadgesReplyHandler' => 'applications/badges/mail/PhabricatorBadgesReplyHandler.php',
18941895
'PhabricatorBadgesSchemaSpec' => 'applications/badges/storage/PhabricatorBadgesSchemaSpec.php',
1896+
'PhabricatorBadgesSearchConduitAPIMethod' => 'applications/badges/conduit/PhabricatorBadgesSearchConduitAPIMethod.php',
18951897
'PhabricatorBadgesSearchEngine' => 'applications/badges/query/PhabricatorBadgesSearchEngine.php',
18961898
'PhabricatorBadgesTransaction' => 'applications/badges/storage/PhabricatorBadgesTransaction.php',
18971899
'PhabricatorBadgesTransactionComment' => 'applications/badges/storage/PhabricatorBadgesTransactionComment.php',
@@ -6247,12 +6249,14 @@
62476249
'PhabricatorTokenReceiverInterface',
62486250
'PhabricatorFlaggableInterface',
62496251
'PhabricatorDestructibleInterface',
6252+
'PhabricatorConduitResultInterface',
62506253
),
62516254
'PhabricatorBadgesCommentController' => 'PhabricatorBadgesController',
62526255
'PhabricatorBadgesController' => 'PhabricatorController',
62536256
'PhabricatorBadgesCreateCapability' => 'PhabricatorPolicyCapability',
62546257
'PhabricatorBadgesDAO' => 'PhabricatorLiskDAO',
62556258
'PhabricatorBadgesDefaultEditCapability' => 'PhabricatorPolicyCapability',
6259+
'PhabricatorBadgesEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod',
62566260
'PhabricatorBadgesEditController' => 'PhabricatorBadgesController',
62576261
'PhabricatorBadgesEditEngine' => 'PhabricatorEditEngine',
62586262
'PhabricatorBadgesEditRecipientsController' => 'PhabricatorBadgesController',
@@ -6267,6 +6271,7 @@
62676271
'PhabricatorBadgesRemoveRecipientsController' => 'PhabricatorBadgesController',
62686272
'PhabricatorBadgesReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
62696273
'PhabricatorBadgesSchemaSpec' => 'PhabricatorConfigSchemaSpec',
6274+
'PhabricatorBadgesSearchConduitAPIMethod' => 'PhabricatorSearchEngineAPIMethod',
62706275
'PhabricatorBadgesSearchEngine' => 'PhabricatorApplicationSearchEngine',
62716276
'PhabricatorBadgesTransaction' => 'PhabricatorApplicationTransaction',
62726277
'PhabricatorBadgesTransactionComment' => 'PhabricatorApplicationTransactionComment',
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
final class PhabricatorBadgesEditConduitAPIMethod
4+
extends PhabricatorEditEngineAPIMethod {
5+
6+
public function getAPIMethodName() {
7+
return 'badges.edit';
8+
}
9+
10+
public function newEditEngine() {
11+
return new PhabricatorBadgesEditEngine();
12+
}
13+
14+
public function getMethodSummary() {
15+
return pht(
16+
'Apply transactions to create a new badge or edit an existing one.');
17+
}
18+
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
final class PhabricatorBadgesSearchConduitAPIMethod
4+
extends PhabricatorSearchEngineAPIMethod {
5+
6+
public function getAPIMethodName() {
7+
return 'badges.search';
8+
}
9+
10+
public function newSearchEngine() {
11+
return new PhabricatorBadgesSearchEngine();
12+
}
13+
14+
public function getMethodSummary() {
15+
return pht('Read information about badges.');
16+
}
17+
18+
}

‎src/applications/badges/editor/PhabricatorBadgesEditEngine.php

+5
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,14 @@ protected function buildCustomEditFields($object) {
8181
->setKey('name')
8282
->setLabel(pht('Name'))
8383
->setDescription(pht('Badge name.'))
84+
->setConduitTypeDescription(pht('New badge name.'))
8485
->setTransactionType(PhabricatorBadgesTransaction::TYPE_NAME)
8586
->setValue($object->getName()),
8687
id(new PhabricatorTextEditField())
8788
->setKey('flavor')
8889
->setLabel(pht('Flavor text'))
8990
->setDescription(pht('Short description of the badge.'))
91+
->setConduitTypeDescription(pht('New badge flavor.'))
9092
->setValue($object->getFlavor())
9193
->setTransactionType(PhabricatorBadgesTransaction::TYPE_FLAVOR),
9294
id(new PhabricatorIconSetEditField())
@@ -100,13 +102,16 @@ protected function buildCustomEditFields($object) {
100102
id(new PhabricatorSelectEditField())
101103
->setKey('quality')
102104
->setLabel(pht('Quality'))
105+
->setDescription(pht('Color and rarity of the badge.'))
106+
->setConduitTypeDescription(pht('New badge quality.'))
103107
->setValue($object->getQuality())
104108
->setTransactionType(PhabricatorBadgesTransaction::TYPE_QUALITY)
105109
->setOptions(PhabricatorBadgesQuality::getDropdownQualityMap()),
106110
id(new PhabricatorRemarkupEditField())
107111
->setKey('description')
108112
->setLabel(pht('Description'))
109113
->setDescription(pht('Badge long description.'))
114+
->setConduitTypeDescription(pht('New badge description.'))
110115
->setTransactionType(PhabricatorBadgesTransaction::TYPE_DESCRIPTION)
111116
->setValue($object->getDescription()),
112117
);

‎src/applications/badges/storage/PhabricatorBadgesBadge.php

+36-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ final class PhabricatorBadgesBadge extends PhabricatorBadgesDAO
77
PhabricatorSubscribableInterface,
88
PhabricatorTokenReceiverInterface,
99
PhabricatorFlaggableInterface,
10-
PhabricatorDestructibleInterface {
10+
PhabricatorDestructibleInterface,
11+
PhabricatorConduitResultInterface {
1112

1213
protected $name;
1314
protected $flavor;
@@ -49,6 +50,8 @@ public static function initializeNewBadge(PhabricatorUser $actor) {
4950
->setQuality(PhabricatorBadgesQuality::DEFAULT_QUALITY)
5051
->setCreatorPHID($actor->getPHID())
5152
->setEditPolicy($edit_policy)
53+
->setFlavor('')
54+
->setDescription('')
5255
->setStatus(self::STATUS_ACTIVE);
5356
}
5457

@@ -190,4 +193,36 @@ public function destroyObjectPermanently(
190193
$this->saveTransaction();
191194
}
192195

196+
/* -( PhabricatorConduitResultInterface )---------------------------------- */
197+
198+
199+
public function getFieldSpecificationsForConduit() {
200+
return array(
201+
id(new PhabricatorConduitSearchFieldSpecification())
202+
->setKey('name')
203+
->setType('string')
204+
->setDescription(pht('The name of the badge.')),
205+
id(new PhabricatorConduitSearchFieldSpecification())
206+
->setKey('creatorPHID')
207+
->setType('phid')
208+
->setDescription(pht('User PHID of the creator.')),
209+
id(new PhabricatorConduitSearchFieldSpecification())
210+
->setKey('status')
211+
->setType('string')
212+
->setDescription(pht('Active or archived status of the badge.')),
213+
);
214+
}
215+
216+
public function getFieldValuesForConduit() {
217+
return array(
218+
'name' => $this->getName(),
219+
'creatorPHID' => $this->getCreatorPHID(),
220+
'status' => $this->getStatus(),
221+
);
222+
}
223+
224+
public function getConduitSearchAttachments() {
225+
return array();
226+
}
227+
193228
}

‎src/applications/paste/storage/PhabricatorPaste.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ public function getFieldSpecificationsForConduit() {
264264
id(new PhabricatorConduitSearchFieldSpecification())
265265
->setKey('status')
266266
->setType('string')
267-
->setDescription(pht('Active or arhived status of the paste.')),
267+
->setDescription(pht('Active or archived status of the paste.')),
268268
);
269269
}
270270

0 commit comments

Comments
 (0)
Failed to load comments.