mirror of
https://gitlab.com/uldvstar/exchange-2.0.git
synced 2026-08-19 04:24:16 +00:00
48 lines
1.5 KiB
PHP
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);
|
|
}
|
|
|
|
} |