1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
JobDataValidator.php
См. документацию.
1<?php
2
3declare(strict_types=1);
4
5namespace Bitrix\Socialnetwork\Collab\Onboarding\Internals\Validation\Validator;
6
7use Bitrix\Main\Error;
8use Bitrix\Main\Validation\ValidationError;
9use Bitrix\Main\Validation\ValidationResult;
10use Bitrix\Main\Validation\Validator\MinValidator;
11use Bitrix\Main\Validation\Validator\ValidatorInterface;
12use Bitrix\Socialnetwork\Collab\Onboarding\Internals\Type;
13
15{
16 public function validate(mixed $value): ValidationResult
17 {
19
20 if (!is_array($value))
21 {
22 $result->addError(new ValidationError('Wrong array type'));
23
24 return $result;
25 }
26
27 if (
28 !array_key_exists('collabId', $value)
29 || !array_key_exists('userId', $value)
30 || !array_key_exists('id', $value)
31 || !array_key_exists('type', $value)
32 || !array_key_exists('createdDate', $value)
33 || !array_key_exists('nextExecution', $value)
34 )
35 {
36 $result->addError(new ValidationError('Incorrect array data'));
37
38 return $result;
39 }
40
41 if (Type::tryFrom($value['type']) === null)
42 {
43 $result->addError(new Error('Wrong onboarding job type'));
44
45 return $result;
46 }
47
48 $positiveNumberValidator = new MinValidator(1);
49 if (!$positiveNumberValidator->validate($value['collabId'])->isSuccess())
50 {
51 $result->addError(new ValidationError('Collab id must be greater than 0'));
52
53 return $result;
54 }
55
56 if (!$positiveNumberValidator->validate($value['userId'])->isSuccess())
57 {
58 $result->addError(new ValidationError('User id must be greater than 0'));
59
60 return $result;
61 }
62
63 if ($value['id'] !== null && (int)$value['id'] <= 0)
64 {
65 $result->addError(new ValidationError('Id must be greater than 0 or empty'));
66 }
67
68 return $result;
69 }
70}
Определения error.php:15
$result
Определения get_property_values.php:14