Passed
Push — master ( 4b301d...d0583a )
by Tõnis
03:30
created
Respondent.php 1 patch
Spacing   +73 added lines, -73 removed lines patch added patch discarded remove patch
@@ -31,7 +31,7 @@  discard block
 block discarded – undo
31 31
     /**
32 32
      * @var array $surveyIdentifyingColumns names of the columns that identify a respondent as unique inside a survey
33 33
      */
34
-    public static $surveyIdentifyingColumns = ['phone_number','email_address'];
34
+    public static $surveyIdentifyingColumns = ['phone_number', 'email_address'];
35 35
 
36 36
     public function init()
37 37
     {
@@ -45,20 +45,20 @@  discard block
 block discarded – undo
45 45
     public function rules()
46 46
     {
47 47
         return array_merge([
48
-            [['survey_id','token'], 'required'],
48
+            [['survey_id', 'token'], 'required'],
49 49
             [['survey_id'], 'integer'],
50 50
             [['email_address'], 'validateEmail'],
51 51
             // email addresses always lowercase
52
-            [['email_address','email_address'],'trim'],
53
-            ['email_address','filter', 'filter' => 'strtolower'],
52
+            [['email_address', 'email_address'], 'trim'],
53
+            ['email_address', 'filter', 'filter' => 'strtolower'],
54 54
             [['alternative_email_addresses'], 'string'],
55 55
             [['alternative_email_addresses'], 'validateMultipleEmails'],
56
-            [['phone_number','email_address'],'trim'],
57
-            ['phone_number','filter', 'filter' => 'strtolower'],
58
-            [['phone_number'],'string'],
59
-            [['phone_number'],'validatePhoneNumber'],
56
+            [['phone_number', 'email_address'], 'trim'],
57
+            ['phone_number', 'filter', 'filter' => 'strtolower'],
58
+            [['phone_number'], 'string'],
59
+            [['phone_number'], 'validatePhoneNumber'],
60 60
             [['alternative_phone_numbers'], 'string'],
61
-            [['alternative_phone_numbers'],'validateMultiplePhoneNumbers'],
61
+            [['alternative_phone_numbers'], 'validateMultiplePhoneNumbers'],
62 62
             [['token'], 'unique'],
63 63
         ], parent::rules());
64 64
     }
@@ -70,11 +70,11 @@  discard block
 block discarded – undo
70 70
      * @param string $address
71 71
      * @return bool
72 72
      */
73
-    public function validateEmail($attribute,$address = null){
73
+    public function validateEmail($attribute, $address = null) {
74 74
 
75
-        if($this->validateEmailFormat($attribute, $address)
75
+        if ($this->validateEmailFormat($attribute, $address)
76 76
             && !$this->isSameAsMainAddress($attribute, $address)
77
-            && !$this->isEmailSurveyDuplicate($attribute, $address)){
77
+            && !$this->isEmailSurveyDuplicate($attribute, $address)) {
78 78
             return true;
79 79
         }
80 80
         return false;
@@ -92,8 +92,8 @@  discard block
 block discarded – undo
92 92
         if (!$validator->validate($address)) {
93 93
             $this->addError($attribute,
94 94
                 Yii::t('app',
95
-                    'Invalid email address "{0}"',[$address]
96
-                ).' '.Yii::t('app','Reason: {0}',[Yii::t('app','Invalid email format')])
95
+                    'Invalid email address "{0}"', [$address]
96
+                ).' '.Yii::t('app', 'Reason: {0}', [Yii::t('app', 'Invalid email format')])
97 97
             );
98 98
             return false;
99 99
         }
@@ -107,48 +107,48 @@  discard block
 block discarded – undo
107 107
      */
108 108
     private function isSameAsMainAddress($attribute, $address = null)
109 109
     {
110
-        if(!$address or empty($address)){
110
+        if (!$address or empty($address)) {
111 111
             return false;
112 112
         }
113
-        $isSame = ($attribute=='email_address' ? false : $address == $this->email_address);
113
+        $isSame = ($attribute == 'email_address' ? false : $address == $this->email_address);
114 114
         if ($isSame) {
115 115
             $this->addError($attribute,
116 116
                 Yii::t('app',
117
-                    'Invalid email address "{0}"',[$address]
118
-                ).' '.Yii::t('app','Reason: {0}',[Yii::t('app',$attribute. ' duplicates main address')])
117
+                    'Invalid email address "{0}"', [$address]
118
+                ).' '.Yii::t('app', 'Reason: {0}', [Yii::t('app', $attribute.' duplicates main address')])
119 119
             );
120 120
         }
121 121
         return $isSame;
122 122
     }
123 123
 
124 124
 
125
-    public function validateMultipleEmails($attribute){
125
+    public function validateMultipleEmails($attribute) {
126 126
         $addresses = yii\helpers\Json::decode($this->alternative_email_addresses);
127
-        if($this->alternative_email_addresses && !empty($addresses)){
127
+        if ($this->alternative_email_addresses && !empty($addresses)) {
128 128
             $cleanAddresses = [];
129
-            if(!empty($addresses)){
130
-                $i=0;
131
-                foreach ($addresses as $key => $address){
132
-                    if($address <> ""){
129
+            if (!empty($addresses)) {
130
+                $i = 0;
131
+                foreach ($addresses as $key => $address) {
132
+                    if ($address <> "") {
133 133
                         // check the alternative numbers of that model for duplicates
134 134
                         $checkItems = $addresses;
135 135
                         unset($checkItems[$key]);
136
-                        if(in_array($address,$checkItems)){
137
-                            $this->addError($attribute,Yii::t('app','Duplicate email in alternative email addresses'));
136
+                        if (in_array($address, $checkItems)) {
137
+                            $this->addError($attribute, Yii::t('app', 'Duplicate email in alternative email addresses'));
138 138
                         }
139 139
 
140 140
                         $i++;
141
-                        if($i>=static::MAX_ALTERNATIVE_CONTACTS){
142
-                            $this->addError($attribute,Yii::t('app','Maximum alternative addresses limit ({0}) reached for {1}',[static::MAX_ALTERNATIVE_CONTACTS,$this->email_address]));
141
+                        if ($i >= static::MAX_ALTERNATIVE_CONTACTS) {
142
+                            $this->addError($attribute, Yii::t('app', 'Maximum alternative addresses limit ({0}) reached for {1}', [static::MAX_ALTERNATIVE_CONTACTS, $this->email_address]));
143 143
                         }
144 144
                         $address = strtolower(trim($address));
145
-                        if($this->validateEmail($attribute,$address)){
146
-                            $cleanAddresses[]=$address;
145
+                        if ($this->validateEmail($attribute, $address)) {
146
+                            $cleanAddresses[] = $address;
147 147
                         }
148 148
                     }
149 149
 
150 150
                 }
151
-                if(!empty($cleanAddresses)){
151
+                if (!empty($cleanAddresses)) {
152 152
                     $this->alternative_email_addresses = yii\helpers\Json::encode($cleanAddresses);
153 153
                 } else {
154 154
                     $this->alternative_email_addresses = null;
@@ -158,42 +158,42 @@  discard block
 block discarded – undo
158 158
     }
159 159
 
160 160
 
161
-    public function validatePhoneNumber($attribute, $phone_number = null){
161
+    public function validatePhoneNumber($attribute, $phone_number = null) {
162 162
         $this->validateSameAsMainNumber($attribute, $phone_number);
163 163
         // TODO
164 164
         $isValidFormat = true;
165 165
         $this->validatePhoneSurveyDuplicate($attribute, $phone_number);
166 166
     }
167 167
 
168
-    public function validateMultiplePhoneNumbers($attribute){
169
-        if($this->alternative_phone_numbers){
168
+    public function validateMultiplePhoneNumbers($attribute) {
169
+        if ($this->alternative_phone_numbers) {
170 170
             $cleanItems = [];
171 171
             $items = yii\helpers\Json::decode($this->alternative_phone_numbers);
172 172
 
173
-            if(!empty($items)){
174
-                $i=0;
175
-                foreach ($items as $key=> $item){
173
+            if (!empty($items)) {
174
+                $i = 0;
175
+                foreach ($items as $key=> $item) {
176 176
                     $item = strtolower(trim($item));
177
-                    if($item <> ''){
177
+                    if ($item <> '') {
178 178
                         $i++;
179 179
                         // check the alternative numbers of that model for duplicates
180 180
                         $checkItems = $items;
181 181
                         unset($checkItems[$key]);
182
-                        if(in_array($item,$checkItems)){
183
-                            $this->addError($attribute,Yii::t('app','Duplicate number in alternative phone numbers'));
182
+                        if (in_array($item, $checkItems)) {
183
+                            $this->addError($attribute, Yii::t('app', 'Duplicate number in alternative phone numbers'));
184 184
                         }
185 185
 
186 186
 
187
-                        if($i>=static::MAX_ALTERNATIVE_CONTACTS){
188
-                            $this->addError($attribute,Yii::t('app','Maximum alternative phone numbers limit ({0}) reached for {1}',[static::MAX_ALTERNATIVE_CONTACTS,$this->phone_number]));
187
+                        if ($i >= static::MAX_ALTERNATIVE_CONTACTS) {
188
+                            $this->addError($attribute, Yii::t('app', 'Maximum alternative phone numbers limit ({0}) reached for {1}', [static::MAX_ALTERNATIVE_CONTACTS, $this->phone_number]));
189 189
                         }
190
-                        if($this->validatePhoneNumber($attribute,$item)){
191
-                            $cleanItems[]=$item;
190
+                        if ($this->validatePhoneNumber($attribute, $item)) {
191
+                            $cleanItems[] = $item;
192 192
                         }
193 193
 
194 194
                     }
195 195
                 }
196
-                if(!empty($cleanItems)){
196
+                if (!empty($cleanItems)) {
197 197
                     $this->alternative_phone_numbers = yii\helpers\Json::encode($cleanItems);
198 198
                 } else {
199 199
                     $this->alternative_phone_numbers = null;
@@ -214,13 +214,13 @@  discard block
 block discarded – undo
214 214
             return null;
215 215
         }
216 216
 
217
-        $isSame = ($attribute=='phone_number' ? false : $number == $this->phone_number);
217
+        $isSame = ($attribute == 'phone_number' ? false : $number == $this->phone_number);
218 218
 
219 219
         if ($isSame) {
220 220
             $this->addError($attribute,
221 221
                 Yii::t('app',
222
-                    'Invalid phone number "{0}"',[$number]
223
-                ).' '.Yii::t('app','Reason: {0}',[Yii::t('app',$attribute. ' duplicates main phone number')])
222
+                    'Invalid phone number "{0}"', [$number]
223
+                ).' '.Yii::t('app', 'Reason: {0}', [Yii::t('app', $attribute.' duplicates main phone number')])
224 224
             );
225 225
         }
226 226
         return null;
@@ -231,27 +231,27 @@  discard block
 block discarded – undo
231 231
      * @param string $attribute
232 232
      * @param string $phone_number Phone number to check duplicates for
233 233
      */
234
-    private function validatePhoneSurveyDuplicate($attribute, $phone_number){
234
+    private function validatePhoneSurveyDuplicate($attribute, $phone_number) {
235 235
         $query = static::find();
236 236
         // check only this survey
237 237
         $query->andWhere(['survey_id'=>$this->survey_id]);
238 238
 
239
-        if($this->respondent_id){
239
+        if ($this->respondent_id) {
240 240
             // not itself
241
-            $query->andWhere(['!=','respondent_id',$this->respondent_id]);
241
+            $query->andWhere(['!=', 'respondent_id', $this->respondent_id]);
242 242
         }
243 243
 
244 244
         $condition = ['or',
245 245
             '`phone_number`=:phone_number',
246 246
             '`alternative_phone_numbers` LIKE :phone_number2',
247 247
         ];
248
-        $query->andWhere($condition,[':phone_number'=>$phone_number,':phone_number2'=>'%\"'.$phone_number.'\"%']);
248
+        $query->andWhere($condition, [':phone_number'=>$phone_number, ':phone_number2'=>'%\"'.$phone_number.'\"%']);
249 249
 
250
-        if($query->count() > 0) {
250
+        if ($query->count() > 0) {
251 251
             $this->addError($attribute,
252 252
                 Yii::t('app',
253
-                    'Invalid phone number "{0}"',[$phone_number]
254
-                ).' '.Yii::t('app','Reason: {0}',[Yii::t('app','Duplicate phone number')])
253
+                    'Invalid phone number "{0}"', [$phone_number]
254
+                ).' '.Yii::t('app', 'Reason: {0}', [Yii::t('app', 'Duplicate phone number')])
255 255
             );
256 256
         }
257 257
     }
@@ -261,29 +261,29 @@  discard block
 block discarded – undo
261 261
      * @param string $email_address Email address to check duplicates for
262 262
      * @return bool
263 263
      */
264
-    public function isEmailSurveyDuplicate($attribute, $email_address){
264
+    public function isEmailSurveyDuplicate($attribute, $email_address) {
265 265
         $query = static::find();
266 266
         // check only this survey
267 267
         $query->andWhere(['survey_id'=>$this->survey_id]);
268 268
         // not itself
269
-        if($this->respondent_id){
269
+        if ($this->respondent_id) {
270 270
             // not itself
271
-            $query->andWhere(['!=','respondent_id',$this->respondent_id]);
271
+            $query->andWhere(['!=', 'respondent_id', $this->respondent_id]);
272 272
         }
273 273
 
274 274
         $email_condition = ['or',
275 275
             '`email_address`=:email_address',
276 276
             '`alternative_email_addresses` LIKE :email_address2',
277 277
         ];
278
-        $query->andWhere($email_condition,[':email_address'=>$email_address,':email_address2'=>'%\"'.$email_address.'\"%']);
279
-        if($query->count() > 0){
278
+        $query->andWhere($email_condition, [':email_address'=>$email_address, ':email_address2'=>'%\"'.$email_address.'\"%']);
279
+        if ($query->count() > 0) {
280 280
             return true;
281 281
         }
282 282
 
283 283
         $this->addError($attribute,
284 284
             Yii::t('app',
285
-                'Invalid email address "{0}"',[$email_address]
286
-            ).' '.Yii::t('app','Reason: {0}',[Yii::t('app','Duplicates some other address')])
285
+                'Invalid email address "{0}"', [$email_address]
286
+            ).' '.Yii::t('app', 'Reason: {0}', [Yii::t('app', 'Duplicates some other address')])
287 287
         );
288 288
 
289 289
         return false;
@@ -303,10 +303,10 @@  discard block
 block discarded – undo
303 303
      * @param string $token Respondents token
304 304
      * @return static
305 305
      */
306
-    public static function findByToken($token = null){
307
-        if($token){
306
+    public static function findByToken($token = null) {
307
+        if ($token) {
308 308
             $models = self::findByTokens([$token]);
309
-            if (!empty($models)){
309
+            if (!empty($models)) {
310 310
                 return $models[0];
311 311
             }
312 312
         }
@@ -317,10 +317,10 @@  discard block
 block discarded – undo
317 317
      * @param string[] $tokens Respondents tokens
318 318
      * @return static[]
319 319
      */
320
-    public static function findByTokens($tokens){
320
+    public static function findByTokens($tokens) {
321 321
         /** @var static[] $model */
322 322
         $models = static::find()
323
-            ->andWhere(['in','token', $tokens])
323
+            ->andWhere(['in', 'token', $tokens])
324 324
             ->all();
325 325
         return $models;
326 326
     }
@@ -329,11 +329,11 @@  discard block
 block discarded – undo
329 329
      * Check whether respondent has rejected this specific survey or has a hard bounce on e_mail address
330 330
      * @return bool
331 331
      */
332
-    public function getIsRejected(){
333
-        if(Rejection::rejectedByCode($this->token)){
332
+    public function getIsRejected() {
333
+        if (Rejection::rejectedByCode($this->token)) {
334 334
             return true;
335 335
         }
336
-        if(Rejection::bouncedByEmailAddress($this->email_address)){
336
+        if (Rejection::bouncedByEmailAddress($this->email_address)) {
337 337
             return true;
338 338
         }
339 339
 
@@ -345,7 +345,7 @@  discard block
 block discarded – undo
345 345
      * @param string $email_address
346 346
      * @return static
347 347
      */
348
-    public static function getLatestByEmail($email_address){
348
+    public static function getLatestByEmail($email_address) {
349 349
         /** @var static $model */
350 350
         $model = static::find()
351 351
             ->andWhere(['email_address'=>$email_address])
@@ -357,8 +357,8 @@  discard block
 block discarded – undo
357 357
     /**
358 358
      * @return string
359 359
      */
360
-    public function getShortToken(){
361
-        if(Uuid::isValid($this->token)){
360
+    public function getShortToken() {
361
+        if (Uuid::isValid($this->token)) {
362 362
             $uuid = Uuid::fromString($this->token);
363 363
             $shotUuid = new ShortUuid();
364 364
             return $shotUuid->encode($uuid);
Please login to merge, or discard this patch.