Skip to content

Commit f594331

Browse files
authored
Merge pull request #142 from DigitalTimK/master
2 parents 4eac0d8 + e9624df commit f594331

File tree

4 files changed

+86
-3
lines changed

4 files changed

+86
-3
lines changed

src/Core/Attendee.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public function __construct($xml)
8080
$this->hasVideo = $xml->hasVideo->__toString() === 'true';
8181
$this->clientType = $xml->clientType->__toString();
8282

83-
if ($xml->customData) {
83+
if ($xml->customdata) {
8484
foreach ($xml->customdata->children() as $data) {
8585
$this->customData[$data->getName()] = $data->__toString();
8686
}

src/Core/Meeting.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,36 @@ public function getAttendees()
373373
return $this->attendees;
374374
}
375375

376+
/**
377+
* Moderators of Meeting - Subset of Attendees
378+
* @return Attendee[]
379+
*/
380+
public function getModerators()
381+
{
382+
$attendees = $this->getAttendees();
383+
384+
$moderators = array_filter($attendees, function ($attendee) {
385+
return $attendee->getRole() === 'MODERATOR';
386+
});
387+
388+
return array_values($moderators);
389+
}
390+
391+
/**
392+
* Viewers of Meeting - Subset of Attendees
393+
* @return Attendee[]
394+
*/
395+
public function getViewers()
396+
{
397+
$attendees = $this->getAttendees();
398+
399+
$viewers = array_filter($attendees, function ($attendee) {
400+
return $attendee->getRole() === 'VIEWER';
401+
});
402+
403+
return array_values($viewers);
404+
}
405+
376406
/**
377407
* @return array
378408
*/

tests/Responses/GetMeetingInfoResponseTest.php

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public function setUp()
3636
public function testGetMeetingInfoResponseContent()
3737
{
3838
$this->assertInstanceOf('BigBlueButton\Core\Meeting', $this->meetingInfo->getMeeting());
39-
$this->assertCount(2, $this->meetingInfo->getMeeting()->getAttendees());
39+
$this->assertCount(4, $this->meetingInfo->getMeeting()->getAttendees());
4040
$this->assertEquals('SUCCESS', $this->meetingInfo->getReturnCode());
4141

4242
$info = $this->meetingInfo->getMeeting();
@@ -67,6 +67,8 @@ public function testGetMeetingInfoResponseContent()
6767

6868
public function testMeetingAttendeeContent()
6969
{
70+
$this->assertCount(4, $this->meetingInfo->getMeeting()->getAttendees());
71+
7072
$anAttendee = $this->meetingInfo->getMeeting()->getAttendees()[1];
7173

7274
$this->assertEquals('xi7y7gpmyq1g', $anAttendee->getUserId());
@@ -77,7 +79,6 @@ public function testMeetingAttendeeContent()
7779
$this->assertEquals(true, $anAttendee->hasJoinedVoice());
7880
$this->assertEquals(false, $anAttendee->hasVideo());
7981
$this->assertEquals('FLASH', $anAttendee->getClientType());
80-
$this->assertCount(2, $this->meetingInfo->getMeeting()->getAttendees());
8182

8283
$customData = $anAttendee->getCustomData();
8384
$this->assertEquals(3, sizeof($customData));
@@ -86,6 +87,36 @@ public function testMeetingAttendeeContent()
8687
$this->assertEquals('a:focus{color:#0181eb}', $customData['customStyle']);
8788
}
8889

90+
public function testMeetingModerators()
91+
{
92+
$moderators = $this->meetingInfo->getMeeting()->getModerators();
93+
94+
$this->assertCount(2, $moderators);
95+
96+
$firstModerator = $moderators[0];
97+
$this->assertEquals('Ernie Abernathy', $firstModerator->getFullName());
98+
$this->assertEquals('MODERATOR', $firstModerator->getRole());
99+
100+
$secondModerator = $moderators[1];
101+
$this->assertEquals('Barrett Kutch', $secondModerator->getFullName());
102+
$this->assertEquals('MODERATOR', $secondModerator->getRole());
103+
}
104+
105+
public function testMeetingViewers()
106+
{
107+
$viewers = $this->meetingInfo->getMeeting()->getViewers();
108+
109+
$this->assertCount(2, $viewers);
110+
111+
$firstViewer = $viewers[0];
112+
$this->assertEquals('Peter Parker', $firstViewer->getFullName());
113+
$this->assertEquals('VIEWER', $firstViewer->getRole());
114+
115+
$secondViewer = $viewers[1];
116+
$this->assertEquals('Bruce Wayne', $secondViewer->getFullName());
117+
$this->assertEquals('VIEWER', $secondViewer->getRole());
118+
}
119+
89120
public function testGetMeetingInfoResponseTypes()
90121
{
91122
$info = $this->meetingInfo->getMeeting();

tests/fixtures/get_meeting_info.xml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,28 @@
5050
<customStyle>a:focus{color:#0181eb}</customStyle>
5151
</customdata>
5252
</attendee>
53+
<attendee>
54+
<userID>srfd2uad4x9s</userID>
55+
<fullName>Peter Parker</fullName>
56+
<role>VIEWER</role>
57+
<isPresenter>false</isPresenter>
58+
<isListeningOnly>false</isListeningOnly>
59+
<hasJoinedVoice>true</hasJoinedVoice>
60+
<hasVideo>true</hasVideo>
61+
<clientType>HTML5</clientType>
62+
<customdata></customdata>
63+
</attendee>
64+
<attendee>
65+
<userID>6ntb564ibhnq</userID>
66+
<fullName>Bruce Wayne</fullName>
67+
<role>VIEWER</role>
68+
<isPresenter>false</isPresenter>
69+
<isListeningOnly>true</isListeningOnly>
70+
<hasJoinedVoice>false</hasJoinedVoice>
71+
<hasVideo>false</hasVideo>
72+
<clientType>HTML5</clientType>
73+
<customdata></customdata>
74+
</attendee>
5375
</attendees>
5476
<isBreakout>true</isBreakout>
5577
<parentMeetingID>b97b512f2c92c0ffe7a3476152525807daa1c676-1524213151782</parentMeetingID>

0 commit comments

Comments
 (0)