Krauza/webservice

View on GitHub
src/Core/UseCase/CreateBox.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace Krauza\Core\UseCase;

use Krauza\Core\Entity\Box;
use Krauza\Core\Entity\User;
use Krauza\Core\Factory\BoxFactory;
use Krauza\Core\Policy\IdPolicy;
use Krauza\Core\Repository\BoxRepository;

class CreateBox
{
    private $boxRepository;
    private $idPolicy;

    public function __construct(BoxRepository $boxRepository, IdPolicy $idPolicy)
    {
        $this->boxRepository = $boxRepository;
        $this->idPolicy = $idPolicy;
    }

    public function add(array $data, User $user): Box
    {
        $box = BoxFactory::createBox($data, $this->idPolicy);
        $this->boxRepository->add($box, $user);

        return $box;
    }
}