Path: blob/master/src/applications/flag/conduit/FlagEditConduitAPIMethod.php
12256 views
<?php12final class FlagEditConduitAPIMethod extends FlagConduitAPIMethod {34public function getAPIMethodName() {5return 'flag.edit';6}78public function getMethodDescription() {9return pht('Create or modify a flag.');10}1112protected function defineParamTypes() {13return array(14'objectPHID' => 'required phid',15'color' => 'optional int',16'note' => 'optional string',17);18}1920protected function defineReturnType() {21return 'dict';22}2324protected function execute(ConduitAPIRequest $request) {25$user = $request->getUser()->getPHID();26$phid = $request->getValue('objectPHID');27$new = false;2829$flag = id(new PhabricatorFlag())->loadOneWhere(30'objectPHID = %s AND ownerPHID = %s',31$phid,32$user);33if ($flag) {34$params = $request->getAllParameters();35if (isset($params['color'])) {36$flag->setColor($params['color']);37}38if (isset($params['note'])) {39$flag->setNote($params['note']);40}41} else {42$default_color = PhabricatorFlagColor::COLOR_BLUE;43$flag = id(new PhabricatorFlag())44->setOwnerPHID($user)45->setType(phid_get_type($phid))46->setObjectPHID($phid)47->setReasonPHID($user)48->setColor($request->getValue('color', $default_color))49->setNote($request->getValue('note', ''));50$new = true;51}52$this->attachHandleToFlag($flag, $request->getUser());53$flag->save();54$ret = $this->buildFlagInfoDictionary($flag);55$ret['new'] = $new;56return $ret;57}5859}606162