Completed
Push — master ( 738b10...36c812 )
by Mike
02:22
created

ClassroomApi::cancel()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
ccs 3
cts 3
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 1
crap 1
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 5
    public function __construct(Gateway $requester)
16
    {
17 5
        $this->gateway = $requester;
18 5
    }
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 cancel($classroomId)
38
    {
39 1
        $this->gateway->sendRequest(new Request\Cancel($classroomId));
40 1
    }
41
42
    /**
43
     * {@inheritdoc}
44
     */
45 1
    public function createPermaClas(PermaClassroom $classroom)
46
    {
47 1
        $response = $this->gateway->sendRequest(new Request\CreatePermaClass($classroom));
48 1
        $details  = $response->create_perma_class[0]->perma_class_details[0];
49
50
        return [
51 1
            'class_id'        => (int)$details->class_master_id,
52 1
            'attendee_url'    => (string)$details->common_perma_attendee_url,
53 1
            'presenter_email' => (string)$details->presenter[0]->presenter_email,
54 1
            'presenter_url'   => (string)$details->presenter[0]->presenter_url,
55 1
        ];
56
    }
57
58
    /**
59
     * {@inheritdoc}
60
     */
61 1
    public function addAttendeesToClass($classroomId, Attendees $attendees)
62
    {
63 1
        $response = $this->gateway->sendRequest(new Request\AddAttendees($classroomId, $attendees));
64 1
        $result   = [];
65
66 1
        foreach ($response->add_attendees[0]->attendee_list[0] as $attendee) {
67 1
            $result[] = ['id' => (int)$attendee->attendee_id, 'url' => (string)$attendee->attendee_url];
68 1
        }
69
70 1
        return $result;
71
    }
72
73
    /**
74
     * @param \SimpleXMLElement $response
75
     * @return array
76
     */
77 1
    protected function getPresentersFromResponse(\SimpleXMLElement $response)
78
    {
79 1
        $presenters = [];
80 1
        foreach ($response->presenter_list[0] as $presenter) {
81 1
            $presenters[] = [
82 1
                'email' => (string)$presenter->presenter_email,
83 1
                'url'   => (string)$presenter->presenter_url,
84
            ];
85 1
        }
86
87 1
        return $presenters;
88
    }
89
}
90