for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace App\Containers\User\Tasks;
use App\Containers\ApiAuthentication\Tasks\ApiAuthenticationTask;
use App\Containers\User\Contracts\UserRepositoryInterface;
use App\Containers\User\Exceptions\AccountFailedException;
use App\Port\Task\Abstracts\Task;
use Exception;
/**
* Class CreateUserByVisitorIdTask.
*
* @author Mahmoud Zalt <[email protected]>
*/
class CreateUserByVisitorIdTask extends Task
{
* @var \App\Containers\User\Contracts\UserRepositoryInterface
private $userRepository;
* @var \App\Containers\ApiAuthentication\Tasks\ApiAuthenticationTask
private $authenticationTask;
* CreateUserByVisitorIdTask constructor.
* @param \App\Containers\User\Contracts\UserRepositoryInterface $userRepository
* @param \App\Containers\ApiAuthentication\Tasks\ApiAuthenticationTask $authenticationTask
public function __construct(
UserRepositoryInterface $userRepository,
ApiAuthenticationTask $authenticationTask
) {
$this->userRepository = $userRepository;
$this->authenticationTask = $authenticationTask;
}
* @param $visitorId device ID (example: iphone UUID, Android ID)
* @param null $device
* @param null $platform
* @return mixed
public function run($visitorId, $device = null, $platform = null)
try {
// create new user
$user = $this->userRepository->create([
'visitor_id' => $visitorId,
'device' => $device,
'platform' => $platform,
]);
} catch (Exception $e) {
throw (new AccountFailedException())->debug($e);
return $user;