Passed
Push — master ( a0dc52...1c8004 )
by Mike
19:12
created

ClassroomApi::addAttendeesToClass()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 11
ccs 7
cts 7
cp 1
rs 9.4286
cc 2
eloc 6
nc 2
nop 2
crap 2
1
<?php
2
namespace mikemix\Wiziq\API;
3
4
use mikemix\Wiziq\API\Request;
5
use mikemix\Wiziq\Common\Api\ClassroomApiInterface;
6
use mikemix\Wiziq\Entity\Attendees;
7
use mikemix\Wiziq\Entity\Classroom;
8
use mikemix\Wiziq\Entity\PermaClassroom;
9
10
class ClassroomApi implements ClassroomApiInterface
11
{
12
    /** @var Gateway */
13
    protected $gateway;
14
15 4
    public function __construct(Gateway $requester)
16
    {
17 4
        $this->gateway = $requester;
18 4
    }
19
20
    /**
21
     * {@inheritdoc}
22
     */
23 1
    public function create(Classroom $classroom)
24
    {
25 1
        $response = $this->gateway->sendRequest(new Request\Create($classroom));
26
27
        return [
28 1
            'class_id'      => (int)$response->create[0]->class_details[0]->class_id,
29 1
            'recording_url' => (string)$response->create[0]->class_details[0]->recording_url,
30 1
            'presenters'    => $this->getPresentersFromResponse($response->create[0]->class_details[0])
31 1
        ];
32
    }
33
34
    /**
35
     * {@inheritdoc}
36
     */
37 1
    public function createPermaClas(PermaClassroom $classroom)
38
    {
39 1
        $response = $this->gateway->sendRequest(new Request\CreatePermaClass($classroom));
40 1
        $details  = $response->create_perma_class[0]->perma_class_details[0];
41
42
        return [
43 1
            'class_id'        => (int)$details->class_master_id,
44 1
            'attendee_url'    => (string)$details->common_perma_attendee_url,
45 1
            'presenter_email' => (string)$details->presenter[0]->presenter_email,
46 1
            'presenter_url'   => (string)$details->presenter[0]->presenter_url,
47 1
        ];
48
    }
49
50
    /**
51
     * {@inheritdoc}
52
     */
53 1
    public function addAttendeesToClass($classroomId, Attendees $attendees)
54
    {
55 1
        $response = $this->gateway->sendRequest(new Request\AddAttendees($classroomId, $attendees));
56 1
        $result   = [];
57
58 1
        foreach ($response->add_attendees[0]->attendee_list[0] as $attendee) {
59 1
            $result[] = ['id' => (int)$attendee->attendee_id, 'url' => (string)$attendee->attendee_url];
60 1
        }
61
62 1
        return $result;
63
    }
64
65
    /**
66
     * @param \SimpleXMLElement $response
67
     * @return array
68
     */
69 1
    protected function getPresentersFromResponse(\SimpleXMLElement $response)
70
    {
71 1
        $presenters = [];
72 1
        foreach ($response->presenter_list[0] as $presenter) {
73 1
            $presenters[] = [
74 1
                'email' => (string)$presenter->presenter_email,
75 1
                'url'   => (string)$presenter->presenter_url,
76
            ];
77 1
        }
78
79 1
        return $presenters;
80
    }
81
}
82