make familial situations and professionnal situations configurable

This commit is contained in:
2019-05-09 14:01:53 +02:00
parent 04506781cd
commit d0dc6b3378
11 changed files with 219 additions and 66 deletions

View File

@@ -16,24 +16,63 @@ class ConfigRepository
*/
protected $links;
public function __construct($links)
/**
*
* @var array
*/
protected $professionalSituations;
/**
*
* @var array
*/
protected $familialSituations;
public function __construct($links, $professionnalSituations, $familialSituations)
{
$this->links = $links;
$this->professionalSituations = $professionnalSituations ?? [];
$this->familialSituations = $familialSituations ?? [];
}
/**
*
* @return array where keys are the resource'key and label the ressource label
* @return array where keys are the link's keys and label the links label
*/
public function getLinksLabels()
{
$links = array();
return $this->normalizeConfig($this->links);
}
public function getProfessionalSituationsLabels()
{
return $this->normalizeConfig($this->professionalSituations);
}
public function hasProfessionalSituation(): bool
{
return count($this->professionalSituations) > 0;
}
public function getFamilialSituationsLabels()
{
return $this->normalizeConfig($this->familialSituations);
}
public function hasFamilialSituation(): bool
{
return count($this->familialSituations) > 0;
}
private function normalizeConfig($config)
{
$els = array();
foreach ($this->links as $definition) {
$links[$definition['key']] = $this->normalizeLabel($definition['labels']);
foreach ($config as $definition) {
$els[$definition['key']] = $this->normalizeLabel($definition['labels']);
}
return $links;
return $els;
}
private function normalizeLabel($labels)