Krauza/webservice

View on GitHub
src/Infrastructure/Api/Action/CreateBox.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace Krauza\Infrastructure\Api\Action;

use Krauza\Core\Entity\User;
use Krauza\Core\UseCase\CreateBox as CreateBoxUseCase;

/**
 * Class CreateBox
 * @package Krauza\Infrastructure\Api\Action
 */
final class CreateBox implements Action
{
    /**
     * @var CreateBoxUseCase
     */
    private $boxUseCase;

    /**
     * @var User
     */
    private $currentUser;

    /**
     * CreateBox constructor.
     * @param CreateBoxUseCase $boxUseCase
     * @param User $currentUser
     */
    public function __construct(CreateBoxUseCase $boxUseCase, User $currentUser)
    {
        $this->boxUseCase = $boxUseCase;
        $this->currentUser = $currentUser;
    }

    /**
     * @param array $data
     * @return array
     */
    public function action(array $data): array
    {
        $box = $this->boxUseCase->add($data, $this->currentUser);
        return ['box' => $box];
    }
}