Passed
Pull Request — 1.11.x (#4160)
by Angel Fernando Quiroz
10:15
created

WebinarSettings   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 191
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 58
dl 0
loc 191
rs 10
c 1
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A itemClass() 0 11 3
A __construct() 0 8 1
1
<?php
2
3
/* For licensing terms, see /license.txt */
4
5
namespace Chamilo\PluginBundle\Zoom\API;
6
7
use Exception;
8
9
class WebinarSettings
10
{
11
    use JsonDeserializableTrait;
12
13
    const APPROVAL_TYPE_AUTOMATICALLY_APPROVE = 0;
14
    const APPROVAL_TYPE_MANUALLY_APPROVE = 1;
15
    const APPROVAL_TYPE_NO_REGISTRATION_REQUIRED = 2;
16
17
    const REGISTRATION_TYPE_REGISTER_ONCE_ATTEND_ANY = 1;
18
    const REGISTRATION_TYPE_REGISTER_EACH = 2;
19
    const REGISTRATION_TYPE_REGISTER_ONCE_CHOOSE = 3;
20
21
    /**
22
     * @var bool
23
     */
24
    public $host_video;
25
    /**
26
     * @var bool
27
     */
28
    public $panelists_video;
29
    /**
30
     * @var int
31
     */
32
    public $approval_type;
33
    /**
34
     * @var string
35
     */
36
    public $audio;
37
    /**
38
     * @var string
39
     */
40
    public $auto_recording;
41
    /**
42
     * @var bool
43
     */
44
    public $enforce_login;
45
    /**
46
     * @var string
47
     */
48
    public $enforce_login_domains;
49
    /**
50
     * @var string
51
     */
52
    public $alternative_hosts;
53
    /**
54
     * @var bool
55
     */
56
    public $close_registration;
57
    /**
58
     * @var bool
59
     */
60
    public $show_share_button;
61
    /**
62
     * @var bool
63
     */
64
    public $allow_multiple_devices;
65
    /**
66
     * @var bool
67
     */
68
    public $practice_session;
69
    /**
70
     * @var bool
71
     */
72
    public $hd_video;
73
    /**
74
     * @var object
75
     */
76
    public $question_answer;
77
    /**
78
     * @var bool
79
     */
80
    public $registrants_confirmation_email;
81
    /**
82
     * @var bool
83
     */
84
    public $on_demand;
85
    /**
86
     * @var bool
87
     */
88
    public $request_permission_to_unmute_participants;
89
    /**
90
     * @var array<int,string>
91
     */
92
    public $global_dial_in_countries;
93
    /**
94
     * @var array<int,GlobalDialInNumber>
95
     */
96
    public $global_dial_in_numbers;
97
    /**
98
     * @var string
99
     */
100
    public $contact_name;
101
    /**
102
     * @var string
103
     */
104
    public $contact_email;
105
    /**
106
     * @var int
107
     */
108
    public $registrants_restrict_number;
109
    /**
110
     * @var bool
111
     */
112
    public $registrants_email_notification;
113
    /**
114
     * @var bool
115
     */
116
    public $post_webinar_survey;
117
    /**
118
     * @var bool
119
     */
120
    public $meeting_authentication;
121
    /**
122
     * @var QuestionAndAnswer
123
     */
124
    public $question_and_answer;
125
    /**
126
     * @var bool
127
     */
128
    public $hd_video_for_attendees;
129
    /**
130
     * @var bool
131
     */
132
    public $send_1080p_video_to_attendees;
133
    /**
134
     * @var string
135
     */
136
    public $email_language;
137
    /**
138
     * @var bool
139
     */
140
    public $panelists_invitation_email_notification;
141
    /**
142
     * @var FollowUpUsers
143
     */
144
    public $attendees_and_panelists_reminder_email_notification;
145
    /**
146
     * @var FollowUpUsers
147
     */
148
    public $follow_up_attendees_email_notification;
149
    /**
150
     * @var FollowUpUsers
151
     */
152
    public $follow_up_absentees_email_notification;
153
154
    /**
155
     * @var int
156
     */
157
    public $registration_type;
158
    /**
159
     * @var string
160
     */
161
    public $auto;
162
    /**
163
     * @var string
164
     */
165
    public $survey_url;
166
    /**
167
     * @var string
168
     */
169
    public $authentication_option;
170
    /**
171
     * @var string
172
     */
173
    public $authentication_domains;
174
    /**
175
     * @var string
176
     */
177
    public $authentication_name;
178
179
    public function __construct()
180
    {
181
        $this->global_dial_in_countries = [];
182
        $this->global_dial_in_numbers = [];
183
        $this->question_and_answer = new QuestionAndAnswer();
184
        $this->attendees_and_panelists_reminder_email_notification = new FollowUpUsers();
185
        $this->follow_up_absentees_email_notification = new FollowUpUsers();
186
        $this->follow_up_attendees_email_notification = new FollowUpUsers();
187
    }
188
189
    public function itemClass($propertyName): string
190
    {
191
        if ('global_dial_in_countries' === $propertyName) {
192
            return 'string';
193
        }
194
195
        if ('global_dial_in_numbers' === $propertyName) {
196
            return GlobalDialInNumber::class;
197
        }
198
199
        throw new Exception("No such array property $propertyName");
200
    }
201
}
202