mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-27 15:54:29 +02:00
Visual Console Refactor: added the status image to the group model
Former-commit-id: 80da05ae95ed87d4c7323594ada9e70c62f27501
This commit is contained in:
parent
6e15117e11
commit
0f8c275ed1
@ -33,8 +33,9 @@ final class Group extends Item
|
|||||||
{
|
{
|
||||||
$return = parent::decode($data);
|
$return = parent::decode($data);
|
||||||
$return['type'] = GROUP_ITEM;
|
$return['type'] = GROUP_ITEM;
|
||||||
$return['imageSrc'] = $this->extractImageSrc($data);
|
$return['imageSrc'] = static::extractImageSrc($data);
|
||||||
$return['groupId'] = $this->extractGroupId($data);
|
$return['groupId'] = static::extractGroupId($data);
|
||||||
|
$return['statusImageSrc'] = static::extractStatusImageSrc($data);
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,14 +49,14 @@ final class Group extends Item
|
|||||||
*
|
*
|
||||||
* @throws \InvalidArgumentException When a valid image src can't be found.
|
* @throws \InvalidArgumentException When a valid image src can't be found.
|
||||||
*/
|
*/
|
||||||
private function extractImageSrc(array $data): string
|
private static function extractImageSrc(array $data): string
|
||||||
{
|
{
|
||||||
$imageSrc = static::notEmptyStringOr(
|
$imageSrc = static::notEmptyStringOr(
|
||||||
static::issetInArray($data, ['imageSrc', 'image']),
|
static::issetInArray($data, ['imageSrc', 'image']),
|
||||||
null
|
null
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($imageSrc === null || \strlen($imageSrc) === 0) {
|
if ($imageSrc === null) {
|
||||||
throw new \InvalidArgumentException(
|
throw new \InvalidArgumentException(
|
||||||
'the image src property is required and should be a non empty string'
|
'the image src property is required and should be a non empty string'
|
||||||
);
|
);
|
||||||
@ -65,6 +66,34 @@ final class Group extends Item
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extract a status image src value.
|
||||||
|
*
|
||||||
|
* @param array $data Unknown input data structure.
|
||||||
|
*
|
||||||
|
* @return mixed String representing the status image url (not empty)
|
||||||
|
* or null.
|
||||||
|
*
|
||||||
|
* @throws \InvalidArgumentException When a valid status image src
|
||||||
|
* can't be found.
|
||||||
|
*/
|
||||||
|
private static function extractStatusImageSrc(array $data): string
|
||||||
|
{
|
||||||
|
$statusImageSrc = static::notEmptyStringOr(
|
||||||
|
static::issetInArray($data, ['statusImageSrc']),
|
||||||
|
null
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($statusImageSrc === null) {
|
||||||
|
throw new \InvalidArgumentException(
|
||||||
|
'the status image src property is required and should be a non empty string'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $statusImageSrc;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extract a group Id value.
|
* Extract a group Id value.
|
||||||
*
|
*
|
||||||
@ -74,7 +103,7 @@ final class Group extends Item
|
|||||||
*
|
*
|
||||||
* @throws \InvalidArgumentException When a valid group Id can't be found.
|
* @throws \InvalidArgumentException When a valid group Id can't be found.
|
||||||
*/
|
*/
|
||||||
private function extractGroupId(array $data): int
|
private static function extractGroupId(array $data): int
|
||||||
{
|
{
|
||||||
$groupId = static::parseIntOr(
|
$groupId = static::parseIntOr(
|
||||||
static::issetInArray($data, ['groupId', 'id_group']),
|
static::issetInArray($data, ['groupId', 'id_group']),
|
||||||
@ -91,4 +120,41 @@ final class Group extends Item
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetch a vc item data structure from the database using a filter.
|
||||||
|
*
|
||||||
|
* @param array $filter Filter of the Visual Console Item.
|
||||||
|
*
|
||||||
|
* @return array The Visual Console Item data structure stored into the DB.
|
||||||
|
* @throws \InvalidArgumentException When an agent Id cannot be found.
|
||||||
|
*
|
||||||
|
* @override Item::fetchDataFromDB.
|
||||||
|
*/
|
||||||
|
protected static function fetchDataFromDB(array $filter): array
|
||||||
|
{
|
||||||
|
// Due to this DB call, this function cannot be unit tested without
|
||||||
|
// a proper mock.
|
||||||
|
$data = parent::fetchDataFromDB($filter);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Retrieve extra data.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Load side libraries.
|
||||||
|
global $config;
|
||||||
|
include_once $config['homedir'].'/include/functions_groups.php';
|
||||||
|
include_once $config['homedir'].'/include/functions_visual_map.php';
|
||||||
|
|
||||||
|
// Get the status img src.
|
||||||
|
$groupId = static::extractGroupId($data);
|
||||||
|
$status = \groups_get_status($groupId);
|
||||||
|
$data['statusImageSrc'] = \visual_map_get_image_status_element(
|
||||||
|
$data,
|
||||||
|
$status
|
||||||
|
);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user