Refactor input value handling and improve validation in ObjectsGlobal component
This commit is contained in:
@@ -201,6 +201,63 @@ class slack implements notification_i
|
||||
return trim((string)$this->getConfig()->customer_registration_webhook_url->getVariableValue());
|
||||
}
|
||||
|
||||
public function get_internal_department_goal_progress_webhook_url(): string
|
||||
{
|
||||
return trim((string)$this->getConfig()->internal_department_goal_progress_webhook_url->getVariableValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int[]
|
||||
*/
|
||||
public function get_internal_department_ids(): array
|
||||
{
|
||||
return $this->getConfig()->internal_department_ids->getDepartmentIds();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int[] $department_ids
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function set_internal_department_goal_progress_config(string $webhook_url, array $department_ids): array
|
||||
{
|
||||
$this->getConfig()->internal_department_goal_progress_webhook_url->setVariableValue(trim($webhook_url));
|
||||
$this->getConfig()->internal_department_ids->setVariableValue($department_ids);
|
||||
|
||||
return $this->get_internal_department_goal_progress_config();
|
||||
}
|
||||
|
||||
public function get_internal_department_goal_progress_config(): array
|
||||
{
|
||||
$departments = (new departments_o())->getFieldsWhere(
|
||||
[
|
||||
'visible' => 1,
|
||||
'archived' => 0,
|
||||
],
|
||||
[
|
||||
'id',
|
||||
'name',
|
||||
'order_priority',
|
||||
]
|
||||
);
|
||||
|
||||
usort($departments, static function (array $a, array $b): int {
|
||||
return (int)($a['order_priority'] ?? 0) <=> (int)($b['order_priority'] ?? 0)
|
||||
?: (int)($a['id'] ?? 0) <=> (int)($b['id'] ?? 0);
|
||||
});
|
||||
|
||||
return [
|
||||
'internal_department_goal_progress_webhook_url' => $this->get_internal_department_goal_progress_webhook_url(),
|
||||
'internal_department_ids' => $this->get_internal_department_ids(),
|
||||
'departments' => array_map(static function (array $department): array {
|
||||
return [
|
||||
'id' => (int)$department['id'],
|
||||
'name' => (string)$department['name'],
|
||||
'order_priority' => (int)$department['order_priority'],
|
||||
];
|
||||
}, $departments),
|
||||
];
|
||||
}
|
||||
|
||||
public function is_webhook_send_successful(string $result): bool
|
||||
{
|
||||
return !str_starts_with($result, 'Failed to send message:');
|
||||
|
||||
Reference in New Issue
Block a user