for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Helix\Asana\User;
use ArrayIterator;
use Helix\Asana\Base\AbstractEntity;
use Helix\Asana\Task;
use Helix\Asana\User;
use Helix\Asana\Workspace;
use IteratorAggregate;
/**
* A user's task list in a given workspace.
*
* @see https://developers.asana.com/docs/asana-user-task-lists
* @see https://developers.asana.com/docs/user-task-list
* @immutable User task lists are read-only through the API.
* @method string getName ()
* @method User getOwner ()
* @method Workspace getWorkspace ()
*/
class TaskList extends AbstractEntity implements IteratorAggregate {
const TYPE = 'user_task_list';
protected static $map = [
'owner' => User::class,
'workspace' => Workspace::class
];
final public function __toString (): string {
return "user_task_lists/{$this->getGid()}";
}
* @return Task[]
public function getIncompleteTasks () {
return $this->loadAll(Task::class, "{$this}/tasks", ['completed_since' => 'now']);
* Returns an iterator for all tasks.
* @return ArrayIterator|Task[]
public function getIterator () {
return new ArrayIterator($this->getTasks());
public function getTasks () {
return $this->loadAll(Task::class, "{$this}/tasks");