Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/flag/conduit/FlagEditConduitAPIMethod.php
12256 views
1
<?php
2
3
final class FlagEditConduitAPIMethod extends FlagConduitAPIMethod {
4
5
public function getAPIMethodName() {
6
return 'flag.edit';
7
}
8
9
public function getMethodDescription() {
10
return pht('Create or modify a flag.');
11
}
12
13
protected function defineParamTypes() {
14
return array(
15
'objectPHID' => 'required phid',
16
'color' => 'optional int',
17
'note' => 'optional string',
18
);
19
}
20
21
protected function defineReturnType() {
22
return 'dict';
23
}
24
25
protected function execute(ConduitAPIRequest $request) {
26
$user = $request->getUser()->getPHID();
27
$phid = $request->getValue('objectPHID');
28
$new = false;
29
30
$flag = id(new PhabricatorFlag())->loadOneWhere(
31
'objectPHID = %s AND ownerPHID = %s',
32
$phid,
33
$user);
34
if ($flag) {
35
$params = $request->getAllParameters();
36
if (isset($params['color'])) {
37
$flag->setColor($params['color']);
38
}
39
if (isset($params['note'])) {
40
$flag->setNote($params['note']);
41
}
42
} else {
43
$default_color = PhabricatorFlagColor::COLOR_BLUE;
44
$flag = id(new PhabricatorFlag())
45
->setOwnerPHID($user)
46
->setType(phid_get_type($phid))
47
->setObjectPHID($phid)
48
->setReasonPHID($user)
49
->setColor($request->getValue('color', $default_color))
50
->setNote($request->getValue('note', ''));
51
$new = true;
52
}
53
$this->attachHandleToFlag($flag, $request->getUser());
54
$flag->save();
55
$ret = $this->buildFlagInfoDictionary($flag);
56
$ret['new'] = $new;
57
return $ret;
58
}
59
60
}
61
62