1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
<?php
namespace Catapult;
final class Conference extends AudioMixin {
public function __construct()
{
$data = Ensure::Input(func_get_args());
parent::_init($data, new DependsResource,
new LoadsResource(
array("primary" => "GET", "id" => "id", "silent" => false)
),
new SchemaResource(
array("fields" => array("id", "state", "from", "created_time", "completed_time", "fallback_url"),
"needs" => array(
"id", "state", "from"
)
)),
new SubFunctionResource(array(
array("type" => "get", "term" => "members"),
array("type" => "add", "term" => "members"),
array("type" => "update", "term" => "member")
)
)
);
}
public function addMember($params)
{
$args = Ensure::Input($params);
$url = URIResource::Make($this->path, array($this->id, "members"));
$memberid = Locator::Find($this->client->post($url, $args->get()));
return $this->member($memberid);
}
public function updateMember($params)
{
$args = Ensure::Input($params);
$url = URIResource::Make($this->path, array($this->id, "members", $args->val("memberId")));
$member = $this->client->post($url, $args->get());
return $this->member($member['id']);
}
public function member()
{
return new ConferenceMember($this->id);
}
}