HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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);
    }
}