Files
omair saleh 05401f6bbc large commit
2021-03-11 13:06:40 +08:00

48 lines
1.5 KiB
PHP

<?php
namespace App\Classes\Modules\Companies\Processors;
use App\Classes\Modules\Companies\DataTransferObjects\CompanyObject;
use App\Classes\Modules\Companies\Services\AssignsEmployee;
use App\Classes\Modules\Companies\Services\CreatesCompany;
use App\Classes\Modules\Companies\Standards\Rules\CanCreateCompany;
use App\Classes\Modules\Companies\Standards\Rules\CanAssignEmployee;
use App\Classes\Modules\Companies\DataTransferObjects\EmploymentObject;
use Illuminate\Http\Request;
use Illuminate\Database\Eloquent\Model;
class AssignEmployeeProcessor
{
/** @var CanAssignEmployee */
private $canAssignEmployee;
/** @var AssignsEmployee */
private $assignsEmployee;
/**
* AssignEmployeeProcessor constructor.
* @param CanAssignEmployee $canAssignEmployee
* @param AssignsEmployee $assignsEmployee
*/
public function __construct(CanAssignEmployee $canAssignEmployee, AssignsEmployee $assignsEmployee)
{
$this->canAssignEmployee = $canAssignEmployee;
$this->assignsEmployee = $assignsEmployee;
}
/**
* @param EmploymentObject $object
* @return Model
* @throws \App\Classes\Exceptions\AccessForbiddenException
* @throws \App\Classes\Exceptions\MalformedRequestException
* @throws \App\Classes\Exceptions\RequestValidationException
*/
public function execute(EmploymentObject $object): Model {
$this->canAssignEmployee->passes($object);
return $this->assignsEmployee->execute($object);
}
}