File: D:/HostingSpaces/Neopoints/momsecurity.be/app/Komma/Components/ComponentController.php
<?php
/**
* Created by PhpStorm.
* User: mikevandersanden
* Date: 16/01/2019
* Time: 19:36
*/
namespace App\Komma\Components;
use App\Http\Controllers\Controller;
use App\Komma\Dynamic\ComponentType\ComponentTypeBuilder;
class ComponentController extends Controller
{
/**
* @var ComponentLibrary
*/
private $library;
/**
* ComponentController constructor.
* @param ComponentLibrary $library
*/
public function __construct(ComponentLibrary $library)
{
parent::__construct();
$this->library = $library;
}
/**
* Store a new component from the library into the database
*
* @param $name
*/
public function store($name)
{
/** @var ComponentTypeBuilder $componentTypeBuilder */
if( ! $componentTypeBuilder = $this->library->find($name))
throw new \InvalidArgumentException('A componentType with name "'.$name.'" does not exists in library.');
$componentTypeBuilder->build();
}
/**
* Update an existing component from the library in the database
*
* @param $name
*/
public function update($name)
{
/** @var ComponentTypeBuilder $componentTypeBuilder */
if( ! $componentTypeBuilder = $this->library->find($name))
throw new \InvalidArgumentException('A componentType with name "'.$name.'" does not exists in library.');
$componentTypeBuilder->update($name);
}
}