@@ -34,11 +34,11 @@ discard block |
||
34 | 34 | 'workspace' => Workspace::class |
35 | 35 | ]; |
36 | 36 | |
37 | - final public function __toString (): string { |
|
37 | + final public function __toString(): string { |
|
38 | 38 | return "tags/{$this->getGid()}"; |
39 | 39 | } |
40 | 40 | |
41 | - final protected function _getDir (): string { |
|
41 | + final protected function _getDir(): string { |
|
42 | 42 | return 'tags'; |
43 | 43 | } |
44 | 44 | |
@@ -46,7 +46,7 @@ discard block |
||
46 | 46 | * @param array $filter |
47 | 47 | * @return Traversable|Task[] |
48 | 48 | */ |
49 | - public function getIterator (array $filter = Task::FILTER_INCOMPLETE) { |
|
49 | + public function getIterator(array $filter = Task::FILTER_INCOMPLETE) { |
|
50 | 50 | return $this->api->loadEach($this, Task::class, "{$this}/tasks", $filter); |
51 | 51 | } |
52 | 52 | |
@@ -54,7 +54,7 @@ discard block |
||
54 | 54 | * @param array $filter |
55 | 55 | * @return Task[] |
56 | 56 | */ |
57 | - public function getTasks (array $filter = Task::FILTER_INCOMPLETE) { |
|
57 | + public function getTasks(array $filter = Task::FILTER_INCOMPLETE) { |
|
58 | 58 | return iterator_to_array($this->getIterator($filter)); |
59 | 59 | } |
60 | 60 | } |
61 | 61 | \ No newline at end of file |
@@ -40,11 +40,11 @@ discard block |
||
40 | 40 | */ |
41 | 41 | class Event extends Data { |
42 | 42 | |
43 | - const ACTION_CHANGED = 'changed'; // no parent |
|
44 | - const ACTION_ADDED = 'added'; // relational, no change |
|
45 | - const ACTION_REMOVED = 'removed'; // relational, no change |
|
46 | - const ACTION_DELETED = 'deleted'; // no parent or change |
|
47 | - const ACTION_UNDELETED = 'undeleted'; // no parent or change |
|
43 | + const ACTION_CHANGED = 'changed'; // no parent |
|
44 | + const ACTION_ADDED = 'added'; // relational, no change |
|
45 | + const ACTION_REMOVED = 'removed'; // relational, no change |
|
46 | + const ACTION_DELETED = 'deleted'; // no parent or change |
|
47 | + const ACTION_UNDELETED = 'undeleted'; // no parent or change |
|
48 | 48 | |
49 | 49 | const GRAPH = [ |
50 | 50 | User::TYPE => User::class, |
@@ -62,7 +62,7 @@ discard block |
||
62 | 62 | 'user' => User::class |
63 | 63 | ]; |
64 | 64 | |
65 | - protected function _setData (array $data): void { |
|
65 | + protected function _setData(array $data): void { |
|
66 | 66 | if (isset($data['parent'])) { |
67 | 67 | $type = $data['parent']['resource_type']; |
68 | 68 | $data['parent'] = $this->_hydrate(static::GRAPH[$type], $data['parent']); |
@@ -79,7 +79,7 @@ discard block |
||
79 | 79 | * |
80 | 80 | * @return null|Project|Section|Task |
81 | 81 | */ |
82 | - public function getParent () { |
|
82 | + public function getParent() { |
|
83 | 83 | return $this->data['parent'] ?? null; |
84 | 84 | } |
85 | 85 | |
@@ -88,42 +88,42 @@ discard block |
||
88 | 88 | * |
89 | 89 | * @return User|Project|Section|Task|CustomField|Attachment|Story|Like |
90 | 90 | */ |
91 | - public function getResource () { |
|
91 | + public function getResource() { |
|
92 | 92 | return $this->data['resource']; |
93 | 93 | } |
94 | 94 | |
95 | 95 | /** |
96 | 96 | * @return bool |
97 | 97 | */ |
98 | - final public function wasAddition (): bool { |
|
98 | + final public function wasAddition(): bool { |
|
99 | 99 | return $this->getAction() === self::ACTION_ADDED; |
100 | 100 | } |
101 | 101 | |
102 | 102 | /** |
103 | 103 | * @return bool |
104 | 104 | */ |
105 | - final public function wasChange (): bool { |
|
105 | + final public function wasChange(): bool { |
|
106 | 106 | return $this->getAction() === self::ACTION_CHANGED; |
107 | 107 | } |
108 | 108 | |
109 | 109 | /** |
110 | 110 | * @return bool |
111 | 111 | */ |
112 | - final public function wasDeletion (): bool { |
|
112 | + final public function wasDeletion(): bool { |
|
113 | 113 | return $this->getAction() === self::ACTION_DELETED; |
114 | 114 | } |
115 | 115 | |
116 | 116 | /** |
117 | 117 | * @return bool |
118 | 118 | */ |
119 | - final public function wasRemoval (): bool { |
|
119 | + final public function wasRemoval(): bool { |
|
120 | 120 | return $this->getAction() === self::ACTION_REMOVED; |
121 | 121 | } |
122 | 122 | |
123 | 123 | /** |
124 | 124 | * @return bool |
125 | 125 | */ |
126 | - final public function wasUndeletion (): bool { |
|
126 | + final public function wasUndeletion(): bool { |
|
127 | 127 | return $this->getAction() === self::ACTION_UNDELETED; |
128 | 128 | } |
129 | 129 |
@@ -30,11 +30,11 @@ discard block |
||
30 | 30 | 'project' => Project::class |
31 | 31 | ]; |
32 | 32 | |
33 | - final public function __toString (): string { |
|
33 | + final public function __toString(): string { |
|
34 | 34 | return "sections/{$this->getGid()}"; |
35 | 35 | } |
36 | 36 | |
37 | - final protected function _getDir (): string { |
|
37 | + final protected function _getDir(): string { |
|
38 | 38 | return "{$this->getProject()}/sections"; |
39 | 39 | } |
40 | 40 | |
@@ -42,7 +42,7 @@ discard block |
||
42 | 42 | * @param array $filter |
43 | 43 | * @return Traversable|Task[] |
44 | 44 | */ |
45 | - public function getIterator (array $filter = Task::FILTER_INCOMPLETE) { |
|
45 | + public function getIterator(array $filter = Task::FILTER_INCOMPLETE) { |
|
46 | 46 | $filter['section'] = $this->getGid(); |
47 | 47 | return $this->api->loadEach($this, Task::class, 'tasks', $filter); |
48 | 48 | } |
@@ -51,7 +51,7 @@ discard block |
||
51 | 51 | * @param array $filter |
52 | 52 | * @return Task[] |
53 | 53 | */ |
54 | - public function getTasks (array $filter = Task::FILTER_INCOMPLETE) { |
|
54 | + public function getTasks(array $filter = Task::FILTER_INCOMPLETE) { |
|
55 | 55 | return iterator_to_array($this->getIterator($filter)); |
56 | 56 | } |
57 | 57 | |
@@ -61,7 +61,7 @@ discard block |
||
61 | 61 | * @depends after-create |
62 | 62 | * @return Task |
63 | 63 | */ |
64 | - public function newTask () { |
|
64 | + public function newTask() { |
|
65 | 65 | /** @var Task $task */ |
66 | 66 | $task = $this->api->factory($this, Task::class); |
67 | 67 | return $task->addToProject($this); |
@@ -28,7 +28,7 @@ discard block |
||
28 | 28 | */ |
29 | 29 | protected $valueKey; |
30 | 30 | |
31 | - protected function _setData (array $data): void { |
|
31 | + protected function _setData(array $data): void { |
|
32 | 32 | $this->valueKey = [ |
33 | 33 | 'added' => 'added_value', |
34 | 34 | 'removed' => 'removed_value', |
@@ -54,14 +54,14 @@ discard block |
||
54 | 54 | * |
55 | 55 | * @return null|User|Project|Section|Task|FieldEntry|Attachment|Story|Like |
56 | 56 | */ |
57 | - public function getPayload () { |
|
57 | + public function getPayload() { |
|
58 | 58 | return $this->data[$this->valueKey]; |
59 | 59 | } |
60 | 60 | |
61 | 61 | /** |
62 | 62 | * @return bool |
63 | 63 | */ |
64 | - final public function hasPayload (): bool { |
|
64 | + final public function hasPayload(): bool { |
|
65 | 65 | return isset($this->data[$this->valueKey]); |
66 | 66 | } |
67 | 67 |
@@ -46,7 +46,7 @@ discard block |
||
46 | 46 | * @param Api|Data $caller |
47 | 47 | * @param array $data |
48 | 48 | */ |
49 | - public function __construct ($caller, array $data = []) { |
|
49 | + public function __construct($caller, array $data = []) { |
|
50 | 50 | if ($caller instanceof self) { |
51 | 51 | $this->api = $caller->api; |
52 | 52 | } |
@@ -67,9 +67,9 @@ discard block |
||
67 | 67 | * @param array $args |
68 | 68 | * @return mixed |
69 | 69 | */ |
70 | - public function __call (string $method, array $args) { |
|
70 | + public function __call(string $method, array $args) { |
|
71 | 71 | static $magic = []; |
72 | - if (!$call =& $magic[$method]) { |
|
72 | + if (!$call = & $magic[$method]) { |
|
73 | 73 | preg_match('/^(get|has|is|select|set)(.+)$/', $method, $call); |
74 | 74 | $call[1] = '_' . $call[1]; |
75 | 75 | $call[2] = preg_replace_callback('/[A-Z]/', function(array $match) { |
@@ -82,7 +82,7 @@ discard block |
||
82 | 82 | /** |
83 | 83 | * @return array |
84 | 84 | */ |
85 | - public function __debugInfo (): array { |
|
85 | + public function __debugInfo(): array { |
|
86 | 86 | return $this->data; |
87 | 87 | } |
88 | 88 | |
@@ -91,7 +91,7 @@ discard block |
||
91 | 91 | * @return null|Data|mixed |
92 | 92 | * @internal `array_column()` |
93 | 93 | */ |
94 | - final public function __get ($field) { |
|
94 | + final public function __get($field) { |
|
95 | 95 | return $this->_get($field); |
96 | 96 | } |
97 | 97 | |
@@ -100,7 +100,7 @@ discard block |
||
100 | 100 | * @return bool |
101 | 101 | * @internal `array_column()` |
102 | 102 | */ |
103 | - final public function __isset ($field) { |
|
103 | + final public function __isset($field) { |
|
104 | 104 | return true; |
105 | 105 | } |
106 | 106 | |
@@ -112,7 +112,7 @@ discard block |
||
112 | 112 | * @param string $field |
113 | 113 | * @return mixed |
114 | 114 | */ |
115 | - protected function _get (string $field) { |
|
115 | + protected function _get(string $field) { |
|
116 | 116 | return $this->data[$field] ?? null; |
117 | 117 | } |
118 | 118 | |
@@ -127,7 +127,7 @@ discard block |
||
127 | 127 | * @param string $field |
128 | 128 | * @return bool |
129 | 129 | */ |
130 | - protected function _has (string $field): bool { |
|
130 | + protected function _has(string $field): bool { |
|
131 | 131 | $value = $this->_get($field); |
132 | 132 | if (isset($value)) { |
133 | 133 | if (is_countable($value)) { |
@@ -145,7 +145,7 @@ discard block |
||
145 | 145 | * @param mixed $item |
146 | 146 | * @return mixed |
147 | 147 | */ |
148 | - protected function _hydrate (string $class, $item) { |
|
148 | + protected function _hydrate(string $class, $item) { |
|
149 | 149 | if (!isset($item) or $item instanceof self) { |
150 | 150 | return $item; |
151 | 151 | } |
@@ -174,7 +174,7 @@ discard block |
||
174 | 174 | * @param string $field |
175 | 175 | * @return bool |
176 | 176 | */ |
177 | - protected function _is (string $field): bool { |
|
177 | + protected function _is(string $field): bool { |
|
178 | 178 | return (bool)$this->_get($field); |
179 | 179 | } |
180 | 180 | |
@@ -189,7 +189,7 @@ discard block |
||
189 | 189 | * @param callable $filter `fn( Data $object ): bool` |
190 | 190 | * @return array |
191 | 191 | */ |
192 | - protected function _select ($subject, callable $filter) { |
|
192 | + protected function _select($subject, callable $filter) { |
|
193 | 193 | if (is_string($subject)) { |
194 | 194 | $subject = $this->_get($subject) ?? []; |
195 | 195 | } |
@@ -211,7 +211,7 @@ discard block |
||
211 | 211 | * @param mixed $value |
212 | 212 | * @return $this |
213 | 213 | */ |
214 | - protected function _set (string $field, $value) { |
|
214 | + protected function _set(string $field, $value) { |
|
215 | 215 | $this->data[$field] = $value; |
216 | 216 | $this->diff[$field] = true; |
217 | 217 | return $this; |
@@ -222,7 +222,7 @@ discard block |
||
222 | 222 | * |
223 | 223 | * @param array $data |
224 | 224 | */ |
225 | - protected function _setData (array $data): void { |
|
225 | + protected function _setData(array $data): void { |
|
226 | 226 | $this->data = $this->diff = []; |
227 | 227 | foreach ($data as $field => $value) { |
228 | 228 | $this->_setField($field, $value); |
@@ -235,7 +235,7 @@ discard block |
||
235 | 235 | * @param string $field |
236 | 236 | * @param mixed $value |
237 | 237 | */ |
238 | - protected function _setField (string $field, $value): void { |
|
238 | + protected function _setField(string $field, $value): void { |
|
239 | 239 | if (isset(static::MAP[$field])) { |
240 | 240 | $class = static::MAP[$field]; |
241 | 241 | if (is_array($class)) { |
@@ -256,7 +256,7 @@ discard block |
||
256 | 256 | * |
257 | 257 | * @return array |
258 | 258 | */ |
259 | - public function getDiff (): array { |
|
259 | + public function getDiff(): array { |
|
260 | 260 | $convert = function($each) use (&$convert) { |
261 | 261 | // convert existing entities to gids |
262 | 262 | if ($each instanceof AbstractEntity and $each->hasGid()) { |
@@ -281,7 +281,7 @@ discard block |
||
281 | 281 | * |
282 | 282 | * @return bool |
283 | 283 | */ |
284 | - final public function isDiff (): bool { |
|
284 | + final public function isDiff(): bool { |
|
285 | 285 | return (bool)$this->diff; |
286 | 286 | } |
287 | 287 | |
@@ -289,7 +289,7 @@ discard block |
||
289 | 289 | * @see toArray() |
290 | 290 | * @return array |
291 | 291 | */ |
292 | - public function jsonSerialize (): array { |
|
292 | + public function jsonSerialize(): array { |
|
293 | 293 | $data = $this->toArray(); |
294 | 294 | ksort($data); |
295 | 295 | return $data; |
@@ -300,8 +300,8 @@ discard block |
||
300 | 300 | * |
301 | 301 | * @return string |
302 | 302 | */ |
303 | - public function serialize (): string { |
|
304 | - return json_encode($this, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); |
|
303 | + public function serialize(): string { |
|
304 | + return json_encode($this, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE); |
|
305 | 305 | } |
306 | 306 | |
307 | 307 | /** |
@@ -309,7 +309,7 @@ discard block |
||
309 | 309 | * |
310 | 310 | * @return array |
311 | 311 | */ |
312 | - public function toArray (): array { |
|
312 | + public function toArray(): array { |
|
313 | 313 | if (!$this->api) { |
314 | 314 | return $this->data; |
315 | 315 | } |
@@ -334,7 +334,7 @@ discard block |
||
334 | 334 | /** |
335 | 335 | * @param $serialized |
336 | 336 | */ |
337 | - public function unserialize ($serialized): void { |
|
337 | + public function unserialize($serialized): void { |
|
338 | 338 | $this->data = json_decode($serialized, true); |
339 | 339 | } |
340 | 340 | } |
341 | 341 | \ No newline at end of file |
@@ -49,8 +49,7 @@ discard block |
||
49 | 49 | public function __construct ($caller, array $data = []) { |
50 | 50 | if ($caller instanceof self) { |
51 | 51 | $this->api = $caller->api; |
52 | - } |
|
53 | - else { |
|
52 | + } else { |
|
54 | 53 | $this->api = $caller; |
55 | 54 | } |
56 | 55 | $this->_setData($data); |
@@ -242,8 +241,7 @@ discard block |
||
242 | 241 | $value = array_map(function($each) use ($class) { |
243 | 242 | return $this->_hydrate($class[0], $each); |
244 | 243 | }, $value); |
245 | - } |
|
246 | - elseif (isset($value)) { |
|
244 | + } elseif (isset($value)) { |
|
247 | 245 | $value = $this->_hydrate($class, $value); |
248 | 246 | } |
249 | 247 | } |
@@ -31,14 +31,14 @@ discard block |
||
31 | 31 | * |
32 | 32 | * @return string |
33 | 33 | */ |
34 | - abstract public function __toString (): string; |
|
34 | + abstract public function __toString(): string; |
|
35 | 35 | |
36 | 36 | /** |
37 | 37 | * @param self $entity |
38 | 38 | * @return bool |
39 | 39 | * @internal pool |
40 | 40 | */ |
41 | - final public function __merge (self $entity): bool { |
|
41 | + final public function __merge(self $entity): bool { |
|
42 | 42 | $old = $this->toArray(); |
43 | 43 | $this->data = array_merge($this->data, array_diff_key($entity->data, $this->diff)); |
44 | 44 | return $this->toArray() !== $old; |
@@ -52,7 +52,7 @@ discard block |
||
52 | 52 | * @return $this |
53 | 53 | * @internal |
54 | 54 | */ |
55 | - protected function _addWithPost (string $addPath, array $data, string $field, array $diff) { |
|
55 | + protected function _addWithPost(string $addPath, array $data, string $field, array $diff) { |
|
56 | 56 | if ($this->hasGid()) { |
57 | 57 | return $this->_setWithPost($addPath, $data, $field); |
58 | 58 | } |
@@ -65,7 +65,7 @@ discard block |
||
65 | 65 | * @param string $field |
66 | 66 | * @return mixed |
67 | 67 | */ |
68 | - protected function _get (string $field) { |
|
68 | + protected function _get(string $field) { |
|
69 | 69 | if (!array_key_exists($field, $this->data) and $this->hasGid()) { |
70 | 70 | $this->_reload($field); |
71 | 71 | } |
@@ -75,7 +75,7 @@ discard block |
||
75 | 75 | /** |
76 | 76 | * @param string $field |
77 | 77 | */ |
78 | - protected function _reload (string $field): void { |
|
78 | + protected function _reload(string $field): void { |
|
79 | 79 | $remote = $this->api->get($this, [], ['fields' => static::OPT_FIELDS[$field] ?? $field]); |
80 | 80 | $this->_setField($field, $remote[$field] ?? null); |
81 | 81 | $this->api->getPool()->add($this); |
@@ -89,7 +89,7 @@ discard block |
||
89 | 89 | * @return $this |
90 | 90 | * @internal |
91 | 91 | */ |
92 | - protected function _removeWithPost (string $rmPath, array $data, string $field, $diff) { |
|
92 | + protected function _removeWithPost(string $rmPath, array $data, string $field, $diff) { |
|
93 | 93 | if ($this->hasGid()) { |
94 | 94 | return $this->_setWithPost($rmPath, $data, $field); |
95 | 95 | } |
@@ -99,7 +99,7 @@ discard block |
||
99 | 99 | return $this->_set($field, array_values(array_filter($this->data[$field] ?? [], $diff))); |
100 | 100 | } |
101 | 101 | |
102 | - protected function _setData (array $data): void { |
|
102 | + protected function _setData(array $data): void { |
|
103 | 103 | // make sure the gid is consistently null|string across all entities. |
104 | 104 | $data['gid'] = (string)$data['gid']; |
105 | 105 | if (empty($data['gid'])) { |
@@ -122,7 +122,7 @@ discard block |
||
122 | 122 | * @return $this |
123 | 123 | * @internal |
124 | 124 | */ |
125 | - protected function _setWithPost (string $path, array $data, string $field, $value = null) { |
|
125 | + protected function _setWithPost(string $path, array $data, string $field, $value = null) { |
|
126 | 126 | if ($this->hasGid()) { |
127 | 127 | /** @var array $remote */ |
128 | 128 | $remote = $this->api->post($path, $data, ['fields' => static::OPT_FIELDS[$field] ?? $field]); |
@@ -138,7 +138,7 @@ discard block |
||
138 | 138 | /** |
139 | 139 | * @return null|string |
140 | 140 | */ |
141 | - final public function getGid (): ?string { |
|
141 | + final public function getGid(): ?string { |
|
142 | 142 | return $this->data['gid']; |
143 | 143 | } |
144 | 144 | |
@@ -147,7 +147,7 @@ discard block |
||
147 | 147 | * |
148 | 148 | * @return string[] |
149 | 149 | */ |
150 | - public function getPoolKeys () { |
|
150 | + public function getPoolKeys() { |
|
151 | 151 | return [$this->getGid(), (string)$this]; |
152 | 152 | } |
153 | 153 | |
@@ -156,14 +156,14 @@ discard block |
||
156 | 156 | * |
157 | 157 | * @return string |
158 | 158 | */ |
159 | - final public function getResourceType (): string { |
|
159 | + final public function getResourceType(): string { |
|
160 | 160 | return $this::TYPE; |
161 | 161 | } |
162 | 162 | |
163 | 163 | /** |
164 | 164 | * @return bool |
165 | 165 | */ |
166 | - final public function hasGid (): bool { |
|
166 | + final public function hasGid(): bool { |
|
167 | 167 | return isset($this->data['gid']); |
168 | 168 | } |
169 | 169 | |
@@ -173,7 +173,7 @@ discard block |
||
173 | 173 | * @depends after-create |
174 | 174 | * @return $this |
175 | 175 | */ |
176 | - public function reload () { |
|
176 | + public function reload() { |
|
177 | 177 | $remote = $this->api->get($this, [], ['expand' => 'this']); |
178 | 178 | if (!isset($remote['gid'])) { // null and dir guard |
179 | 179 | $this->api->getPool()->remove($this->getPoolKeys()); |
@@ -92,8 +92,7 @@ |
||
92 | 92 | protected function _removeWithPost (string $rmPath, array $data, string $field, $diff) { |
93 | 93 | if ($this->hasGid()) { |
94 | 94 | return $this->_setWithPost($rmPath, $data, $field); |
95 | - } |
|
96 | - elseif (is_array($diff)) { |
|
95 | + } elseif (is_array($diff)) { |
|
97 | 96 | return $this->_set($field, array_values(array_diff($this->data[$field] ?? [], $diff))); |
98 | 97 | } |
99 | 98 | return $this->_set($field, array_values(array_filter($this->data[$field] ?? [], $diff))); |
@@ -49,7 +49,7 @@ discard block |
||
49 | 49 | */ |
50 | 50 | protected $types = []; |
51 | 51 | |
52 | - public function __construct (Task $task, array $data = []) { |
|
52 | + public function __construct(Task $task, array $data = []) { |
|
53 | 53 | $this->task = $task; |
54 | 54 | parent::__construct($task, $data); |
55 | 55 | } |
@@ -58,7 +58,7 @@ discard block |
||
58 | 58 | * @param string $i |
59 | 59 | * @param array $data |
60 | 60 | */ |
61 | - protected function _setField (string $i, $data): void { |
|
61 | + protected function _setField(string $i, $data): void { |
|
62 | 62 | /** @var FieldEntry $entry */ |
63 | 63 | $entry = $this->api->factory($this, FieldEntry::class, $data); |
64 | 64 | $gid = $entry->getGid(); |
@@ -72,7 +72,7 @@ discard block |
||
72 | 72 | * @param $offset |
73 | 73 | * @return null|string |
74 | 74 | */ |
75 | - protected function _toGid (string $offset) { |
|
75 | + protected function _toGid(string $offset) { |
|
76 | 76 | if (isset($this->names[$offset])) { |
77 | 77 | return $offset; |
78 | 78 | } |
@@ -82,11 +82,11 @@ discard block |
||
82 | 82 | /** |
83 | 83 | * @return int |
84 | 84 | */ |
85 | - public function count () { |
|
85 | + public function count() { |
|
86 | 86 | return count($this->data); |
87 | 87 | } |
88 | 88 | |
89 | - public function getDiff (): array { |
|
89 | + public function getDiff(): array { |
|
90 | 90 | return array_map(function(FieldEntry $value) { |
91 | 91 | return $value->getValue(); |
92 | 92 | }, array_intersect_key($this->data, $this->diff)); |
@@ -96,7 +96,7 @@ discard block |
||
96 | 96 | * @param $fieldGid |
97 | 97 | * @return FieldEntry |
98 | 98 | */ |
99 | - public function getField ($fieldGid) { |
|
99 | + public function getField($fieldGid) { |
|
100 | 100 | return $this->data[$fieldGid]; |
101 | 101 | } |
102 | 102 | |
@@ -104,41 +104,41 @@ discard block |
||
104 | 104 | * @param string $name |
105 | 105 | * @return string |
106 | 106 | */ |
107 | - public function getGid (string $name): string { |
|
107 | + public function getGid(string $name): string { |
|
108 | 108 | return $this->gids[$name]; |
109 | 109 | } |
110 | 110 | |
111 | 111 | /** |
112 | 112 | * @return string[] |
113 | 113 | */ |
114 | - public function getGids () { |
|
114 | + public function getGids() { |
|
115 | 115 | return $this->gids; |
116 | 116 | } |
117 | 117 | |
118 | 118 | /** |
119 | 119 | * @return Generator |
120 | 120 | */ |
121 | - public function getIterator () { |
|
121 | + public function getIterator() { |
|
122 | 122 | foreach ($this->data as $gid => $field) { |
123 | 123 | yield $gid => $field->getValue(); |
124 | 124 | } |
125 | 125 | } |
126 | 126 | |
127 | - public function getName (string $fieldGid) { |
|
127 | + public function getName(string $fieldGid) { |
|
128 | 128 | return $this->names[$fieldGid]; |
129 | 129 | } |
130 | 130 | |
131 | 131 | /** |
132 | 132 | * @return string[] |
133 | 133 | */ |
134 | - public function getNames () { |
|
134 | + public function getNames() { |
|
135 | 135 | return $this->names; |
136 | 136 | } |
137 | 137 | |
138 | 138 | /** |
139 | 139 | * @return array |
140 | 140 | */ |
141 | - public function getValues () { |
|
141 | + public function getValues() { |
|
142 | 142 | return iterator_to_array($this); |
143 | 143 | } |
144 | 144 | |
@@ -146,7 +146,7 @@ discard block |
||
146 | 146 | * @param string $offset |
147 | 147 | * @return bool |
148 | 148 | */ |
149 | - public function offsetExists ($offset) { |
|
149 | + public function offsetExists($offset) { |
|
150 | 150 | return isset($this->data[$this->_toGid($offset)]); |
151 | 151 | } |
152 | 152 | |
@@ -154,7 +154,7 @@ discard block |
||
154 | 154 | * @param string $offset |
155 | 155 | * @return null|number|string |
156 | 156 | */ |
157 | - public function offsetGet ($offset) { |
|
157 | + public function offsetGet($offset) { |
|
158 | 158 | return $this->data[$this->_toGid($offset)]->getValue(); |
159 | 159 | } |
160 | 160 | |
@@ -162,7 +162,7 @@ discard block |
||
162 | 162 | * @param string $offset |
163 | 163 | * @param null|number|string $value |
164 | 164 | */ |
165 | - public function offsetSet ($offset, $value) { |
|
165 | + public function offsetSet($offset, $value) { |
|
166 | 166 | $offset = $this->_toGid($offset); |
167 | 167 | $this->data[$offset]->setValue($value); |
168 | 168 | $this->diff[$offset] = true; |
@@ -174,7 +174,7 @@ discard block |
||
174 | 174 | * |
175 | 175 | * @param string $offset |
176 | 176 | */ |
177 | - public function offsetUnset ($offset) { |
|
177 | + public function offsetUnset($offset) { |
|
178 | 178 | $this->offsetSet($offset, null); |
179 | 179 | } |
180 | 180 |
@@ -29,7 +29,7 @@ discard block |
||
29 | 29 | 'workspaces' => [Workspace::class] |
30 | 30 | ]; |
31 | 31 | |
32 | - final public function __toString (): string { |
|
32 | + final public function __toString(): string { |
|
33 | 33 | return "users/{$this->getGid()}"; |
34 | 34 | } |
35 | 35 | |
@@ -37,7 +37,7 @@ discard block |
||
37 | 37 | * @param Workspace $workspace |
38 | 38 | * @return $this |
39 | 39 | */ |
40 | - public function addToWorkspace (Workspace $workspace) { |
|
40 | + public function addToWorkspace(Workspace $workspace) { |
|
41 | 41 | return $this->_addWithPost("{$workspace}/addUser", [ |
42 | 42 | 'user' => $this->getGid() |
43 | 43 | ], 'workspaces', [$workspace]); |
@@ -49,7 +49,7 @@ discard block |
||
49 | 49 | * |
50 | 50 | * @return Workspace |
51 | 51 | */ |
52 | - public function getDefaultWorkspace () { |
|
52 | + public function getDefaultWorkspace() { |
|
53 | 53 | return $this->getWorkspaces()[0]; |
54 | 54 | } |
55 | 55 | |
@@ -57,7 +57,7 @@ discard block |
||
57 | 57 | * @param null|Workspace $workspace Falls back to the default workspace. |
58 | 58 | * @return Portfolio[] |
59 | 59 | */ |
60 | - public function getFavoritePortfolios (Workspace $workspace = null) { |
|
60 | + public function getFavoritePortfolios(Workspace $workspace = null) { |
|
61 | 61 | return $this->getFavorites(Portfolio::class, Portfolio::TYPE, $workspace); |
62 | 62 | } |
63 | 63 | |
@@ -65,7 +65,7 @@ discard block |
||
65 | 65 | * @param null|Workspace $workspace Falls back to the default workspace. |
66 | 66 | * @return Project[] |
67 | 67 | */ |
68 | - public function getFavoriteProjects (Workspace $workspace = null) { |
|
68 | + public function getFavoriteProjects(Workspace $workspace = null) { |
|
69 | 69 | return $this->getFavorites(Project::class, Project::TYPE, $workspace); |
70 | 70 | } |
71 | 71 | |
@@ -73,7 +73,7 @@ discard block |
||
73 | 73 | * @param null|Workspace $workspace Falls back to the default workspace. |
74 | 74 | * @return Tag[] |
75 | 75 | */ |
76 | - public function getFavoriteTags (Workspace $workspace = null) { |
|
76 | + public function getFavoriteTags(Workspace $workspace = null) { |
|
77 | 77 | return $this->getFavorites(Tag::class, Tag::TYPE, $workspace); |
78 | 78 | } |
79 | 79 | |
@@ -81,7 +81,7 @@ discard block |
||
81 | 81 | * @param null|Workspace $workspace Falls back to the default workspace. |
82 | 82 | * @return Team[] |
83 | 83 | */ |
84 | - public function getFavoriteTeams (Workspace $workspace = null) { |
|
84 | + public function getFavoriteTeams(Workspace $workspace = null) { |
|
85 | 85 | return $this->getFavorites(Team::class, Team::TYPE, $workspace); |
86 | 86 | } |
87 | 87 | |
@@ -89,7 +89,7 @@ discard block |
||
89 | 89 | * @param null|Workspace $workspace Falls back to the default workspace. |
90 | 90 | * @return User[] |
91 | 91 | */ |
92 | - public function getFavoriteUsers (Workspace $workspace = null) { |
|
92 | + public function getFavoriteUsers(Workspace $workspace = null) { |
|
93 | 93 | return $this->getFavorites(self::class, self::TYPE, $workspace); |
94 | 94 | } |
95 | 95 | |
@@ -99,7 +99,7 @@ discard block |
||
99 | 99 | * @param null|Workspace $workspace Falls back to the default workspace. |
100 | 100 | * @return array |
101 | 101 | */ |
102 | - protected function getFavorites (string $class, string $resourceType, Workspace $workspace = null) { |
|
102 | + protected function getFavorites(string $class, string $resourceType, Workspace $workspace = null) { |
|
103 | 103 | return $this->api->loadAll($this, $class, "{$this}/favorites", [ |
104 | 104 | 'resource_type' => $resourceType, |
105 | 105 | 'workspace' => ($workspace ?? $this->api->getDefaultWorkspace())->getGid() |
@@ -109,7 +109,7 @@ discard block |
||
109 | 109 | /** |
110 | 110 | * @return string[] |
111 | 111 | */ |
112 | - public function getPoolKeys () { |
|
112 | + public function getPoolKeys() { |
|
113 | 113 | $keys = parent::getPoolKeys(); |
114 | 114 | |
115 | 115 | // include email as a key if it's loaded |
@@ -124,7 +124,7 @@ discard block |
||
124 | 124 | * @param null|Workspace $workspace |
125 | 125 | * @return Portfolio[] |
126 | 126 | */ |
127 | - public function getPortfolios (Workspace $workspace = null) { |
|
127 | + public function getPortfolios(Workspace $workspace = null) { |
|
128 | 128 | return $this->api->loadAll($this, Portfolio::class, "portfolios", [ |
129 | 129 | 'workspace' => ($workspace ?? $this->api->getDefaultWorkspace())->getGid(), |
130 | 130 | 'owner' => $this->getGid() |
@@ -135,7 +135,7 @@ discard block |
||
135 | 135 | * @param null|Workspace $workspace Falls back to the default workspace. |
136 | 136 | * @return TaskList |
137 | 137 | */ |
138 | - public function getTaskList (Workspace $workspace = null) { |
|
138 | + public function getTaskList(Workspace $workspace = null) { |
|
139 | 139 | return $this->api->load($this, TaskList::class, "{$this}/user_task_list", [ |
140 | 140 | 'workspace' => ($workspace ?? $this->api->getDefaultWorkspace())->getGid() |
141 | 141 | ]); |
@@ -147,7 +147,7 @@ discard block |
||
147 | 147 | * @param string[] $filter `workspace` falls back to the default. |
148 | 148 | * @return Task[] |
149 | 149 | */ |
150 | - public function getTasks (array $filter = Task::FILTER_INCOMPLETE) { |
|
150 | + public function getTasks(array $filter = Task::FILTER_INCOMPLETE) { |
|
151 | 151 | $filter['assignee'] = $this->getGid(); |
152 | 152 | $filter += ['workspace' => $this->api->getDefaultWorkspace()->getGid()]; |
153 | 153 | return $this->api->loadAll($this, Task::class, 'tasks', $filter); |
@@ -161,13 +161,13 @@ discard block |
||
161 | 161 | * @param null|Workspace $organization Falls back to the default workspace. |
162 | 162 | * @return Team[] |
163 | 163 | */ |
164 | - public function getTeams (Workspace $organization = null) { |
|
164 | + public function getTeams(Workspace $organization = null) { |
|
165 | 165 | return $this->api->loadAll($this, Team::class, "{$this}/teams", [ |
166 | 166 | 'organization' => ($organization ?? $this->getDefaultWorkspace())->getGid() |
167 | 167 | ]); |
168 | 168 | } |
169 | 169 | |
170 | - public function getUrl (): string { |
|
170 | + public function getUrl(): string { |
|
171 | 171 | return "https://app.asana.com/0/{$this->getGid()}/list"; |
172 | 172 | } |
173 | 173 | |
@@ -175,7 +175,7 @@ discard block |
||
175 | 175 | * @param Workspace $workspace |
176 | 176 | * @return $this |
177 | 177 | */ |
178 | - public function removeFromWorkspace (Workspace $workspace) { |
|
178 | + public function removeFromWorkspace(Workspace $workspace) { |
|
179 | 179 | return $this->_removeWithPost("{$workspace}/removeUser", [ |
180 | 180 | 'user' => $this->getGid() |
181 | 181 | ], 'workspaces', [$workspace]); |
@@ -78,15 +78,15 @@ discard block |
||
78 | 78 | */ |
79 | 79 | private $defaultSection; |
80 | 80 | |
81 | - final public function __toString (): string { |
|
81 | + final public function __toString(): string { |
|
82 | 82 | return "projects/{$this->getGid()}"; |
83 | 83 | } |
84 | 84 | |
85 | - final protected function _getDir (): string { |
|
85 | + final protected function _getDir(): string { |
|
86 | 86 | return 'projects'; |
87 | 87 | } |
88 | 88 | |
89 | - protected function _setData (array $data): void { |
|
89 | + protected function _setData(array $data): void { |
|
90 | 90 | // this is always empty. fields are in the settings, values are in tasks. |
91 | 91 | unset($data['custom_fields']); |
92 | 92 | |
@@ -101,7 +101,7 @@ discard block |
||
101 | 101 | * @param User $user |
102 | 102 | * @return $this |
103 | 103 | */ |
104 | - public function addMember (User $user) { |
|
104 | + public function addMember(User $user) { |
|
105 | 105 | return $this->addMembers([$user]); |
106 | 106 | } |
107 | 107 | |
@@ -110,7 +110,7 @@ discard block |
||
110 | 110 | * @param User[] $users |
111 | 111 | * @return $this |
112 | 112 | */ |
113 | - public function addMembers (array $users) { |
|
113 | + public function addMembers(array $users) { |
|
114 | 114 | return $this->_addWithPost("{$this}/addMembers", [ |
115 | 115 | 'members' => array_column($users, 'gid') |
116 | 116 | ], 'members', $users); |
@@ -121,7 +121,7 @@ discard block |
||
121 | 121 | * @param string $target |
122 | 122 | * @return ProjectWebhook |
123 | 123 | */ |
124 | - public function addWebhook (string $target) { |
|
124 | + public function addWebhook(string $target) { |
|
125 | 125 | /** @var ProjectWebhook $webhook */ |
126 | 126 | $webhook = $this->api->factory($this, ProjectWebhook::class); |
127 | 127 | return $webhook->create($this, $target); |
@@ -146,7 +146,7 @@ discard block |
||
146 | 146 | * @param array $schedule |
147 | 147 | * @return Job |
148 | 148 | */ |
149 | - public function duplicate (string $name, array $include, Team $team = null, array $schedule = []) { |
|
149 | + public function duplicate(string $name, array $include, Team $team = null, array $schedule = []) { |
|
150 | 150 | $data = ['name' => $name]; |
151 | 151 | if ($team) { |
152 | 152 | $data['team'] = $team->getGid(); |
@@ -166,7 +166,7 @@ discard block |
||
166 | 166 | * @depends after-create |
167 | 167 | * @return Section |
168 | 168 | */ |
169 | - public function getDefaultSection () { |
|
169 | + public function getDefaultSection() { |
|
170 | 170 | return $this->defaultSection ?? $this->defaultSection = $this->getSections(1)[0]; |
171 | 171 | } |
172 | 172 | |
@@ -179,7 +179,7 @@ discard block |
||
179 | 179 | * @param null|string $token |
180 | 180 | * @return Event[] |
181 | 181 | */ |
182 | - public function getEvents (&$token) { |
|
182 | + public function getEvents(&$token) { |
|
183 | 183 | return $this->api->sync($this->getGid(), $token); |
184 | 184 | } |
185 | 185 | |
@@ -191,7 +191,7 @@ discard block |
||
191 | 191 | * @param int $limit |
192 | 192 | * @return Traversable|Section[] |
193 | 193 | */ |
194 | - public function getIterator (int $limit = 0) { |
|
194 | + public function getIterator(int $limit = 0) { |
|
195 | 195 | return $this->api->loadEach($this, Section::class, "{$this}/sections", ['limit' => $limit]); |
196 | 196 | } |
197 | 197 | |
@@ -200,7 +200,7 @@ discard block |
||
200 | 200 | * @param int $limit |
201 | 201 | * @return Section[] |
202 | 202 | */ |
203 | - public function getSections (int $limit = 0) { |
|
203 | + public function getSections(int $limit = 0) { |
|
204 | 204 | return iterator_to_array($this->getIterator($limit)); |
205 | 205 | } |
206 | 206 | |
@@ -208,7 +208,7 @@ discard block |
||
208 | 208 | * @depends after-create |
209 | 209 | * @return Status[] |
210 | 210 | */ |
211 | - public function getStatuses () { |
|
211 | + public function getStatuses() { |
|
212 | 212 | return $this->api->loadAll($this, Status::class, "{$this}/project_statuses"); |
213 | 213 | } |
214 | 214 | |
@@ -216,7 +216,7 @@ discard block |
||
216 | 216 | * @depends after-create |
217 | 217 | * @return TaskCounts |
218 | 218 | */ |
219 | - public function getTaskCounts () { |
|
219 | + public function getTaskCounts() { |
|
220 | 220 | /** @var array $remote */ |
221 | 221 | $remote = $this->api->get("{$this}/task_counts", [], TaskCounts::OPT); |
222 | 222 | return $this->api->factory($this, TaskCounts::class, $remote); |
@@ -229,7 +229,7 @@ discard block |
||
229 | 229 | * @param array $filter |
230 | 230 | * @return Task[] |
231 | 231 | */ |
232 | - public function getTasks (array $filter = Task::FILTER_INCOMPLETE) { |
|
232 | + public function getTasks(array $filter = Task::FILTER_INCOMPLETE) { |
|
233 | 233 | $filter['project'] = $this->getGid(); |
234 | 234 | return $this->api->loadAll($this, Task::class, "tasks", $filter); |
235 | 235 | } |
@@ -238,25 +238,25 @@ discard block |
||
238 | 238 | * @depends after-create |
239 | 239 | * @return string |
240 | 240 | */ |
241 | - public function getUrl (): string { |
|
241 | + public function getUrl(): string { |
|
242 | 242 | return "https://app.asana.com/0/{$this->getGid()}"; |
243 | 243 | } |
244 | 244 | |
245 | 245 | /** |
246 | 246 | * @return ProjectWebhook[] |
247 | 247 | */ |
248 | - public function getWebhooks () { |
|
248 | + public function getWebhooks() { |
|
249 | 249 | return $this->api->loadAll($this, ProjectWebhook::class, 'webhooks', [ |
250 | 250 | 'workspace' => $this->getWorkspace()->getGid(), |
251 | 251 | 'resource' => $this->getGid() |
252 | 252 | ]); |
253 | 253 | } |
254 | 254 | |
255 | - public function isBoard (): bool { |
|
255 | + public function isBoard(): bool { |
|
256 | 256 | return $this->getLayout() === self::LAYOUT_BOARD; |
257 | 257 | } |
258 | 258 | |
259 | - public function isList (): bool { |
|
259 | + public function isList(): bool { |
|
260 | 260 | return $this->getLayout() === self::LAYOUT_LIST; |
261 | 261 | } |
262 | 262 | |
@@ -264,7 +264,7 @@ discard block |
||
264 | 264 | * @depends after-create |
265 | 265 | * @return Section |
266 | 266 | */ |
267 | - public function newSection () { |
|
267 | + public function newSection() { |
|
268 | 268 | return $this->api->factory($this, Section::class, ['project' => $this]); |
269 | 269 | } |
270 | 270 | |
@@ -272,7 +272,7 @@ discard block |
||
272 | 272 | * @depends after-create |
273 | 273 | * @return Status |
274 | 274 | */ |
275 | - public function newStatus () { |
|
275 | + public function newStatus() { |
|
276 | 276 | return $this->api->factory($this, Status::class); |
277 | 277 | } |
278 | 278 | |
@@ -282,7 +282,7 @@ discard block |
||
282 | 282 | * @depends after-create |
283 | 283 | * @return Task |
284 | 284 | */ |
285 | - public function newTask () { |
|
285 | + public function newTask() { |
|
286 | 286 | return $this->getDefaultSection()->newTask(); |
287 | 287 | } |
288 | 288 | |
@@ -291,7 +291,7 @@ discard block |
||
291 | 291 | * @param User $user |
292 | 292 | * @return $this |
293 | 293 | */ |
294 | - public function removeMember (User $user) { |
|
294 | + public function removeMember(User $user) { |
|
295 | 295 | return $this->removeMembers([$user]); |
296 | 296 | } |
297 | 297 | |
@@ -300,7 +300,7 @@ discard block |
||
300 | 300 | * @param User[] $users |
301 | 301 | * @return $this |
302 | 302 | */ |
303 | - public function removeMembers (array $users) { |
|
303 | + public function removeMembers(array $users) { |
|
304 | 304 | return $this->_removeWithPost("{$this}/removeMembers", [ |
305 | 305 | 'members' => array_column($users, 'gid') |
306 | 306 | ], 'members', $users); |
@@ -310,7 +310,7 @@ discard block |
||
310 | 310 | * @param callable $filter `fn( Section $section ): bool` |
311 | 311 | * @return Section[] |
312 | 312 | */ |
313 | - public function selectSections (callable $filter) { |
|
313 | + public function selectSections(callable $filter) { |
|
314 | 314 | return $this->_select($this->getSections(), $filter); |
315 | 315 | } |
316 | 316 | |
@@ -318,7 +318,7 @@ discard block |
||
318 | 318 | * @param callable $filter `fn( Status $status ): bool` |
319 | 319 | * @return Status[] |
320 | 320 | */ |
321 | - public function selectStatuses (callable $filter) { |
|
321 | + public function selectStatuses(callable $filter) { |
|
322 | 322 | return $this->_select($this->getStatuses(), $filter); |
323 | 323 | } |
324 | 324 | |
@@ -327,7 +327,7 @@ discard block |
||
327 | 327 | * @param array $apiFilter Pre-filter given to the API to reduce network load. |
328 | 328 | * @return Task[] |
329 | 329 | */ |
330 | - public function selectTasks (callable $filter, array $apiFilter = Task::FILTER_INCOMPLETE) { |
|
330 | + public function selectTasks(callable $filter, array $apiFilter = Task::FILTER_INCOMPLETE) { |
|
331 | 331 | return $this->_select($this->getTasks($apiFilter), $filter); |
332 | 332 | } |
333 | 333 | |
@@ -336,7 +336,7 @@ discard block |
||
336 | 336 | * @param null|Team $team |
337 | 337 | * @return $this |
338 | 338 | */ |
339 | - public function setTeam (?Team $team) { |
|
339 | + public function setTeam(?Team $team) { |
|
340 | 340 | if ($team and !$this->hasWorkspace()) { |
341 | 341 | $this->setWorkspace($team->getOrganization()); |
342 | 342 | } |