resq/src/Command/SeedRiderSessionsCommand.php

61 lines
1.5 KiB
PHP

<?php
namespace App\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Doctrine\ORM\EntityManagerInterface;
use App\Service\RedisClientProvider;
use App\Entity\RiderSession;
class SeedRiderSessionsCommand extends Command
{
protected $em;
protected $redis;
public function __construct(EntityManagerInterface $om, RedisClientProvider $redis)
{
$this->em = $om;
$this->redis = $redis->getRedisClient();
parent::__construct();
}
protected function configure()
{
$this->setName('rider:session:seed')
->setDescription('Seed current rider sessions')
->setHelp('Seed current rider sessions');
}
protected function execute(InputInterface $input, OutputInterface $output)
{
// get all rider sessions
$r_sessions = $this->em->getRepository(RiderSession::class)->findAll();
foreach ($r_sessions as $session)
{
// get session id
$session_id = $session->getID();
// get rider id
if ($session->getRider() != null)
{
$rider_id = $session->getRider()->getID();
// key for redis
$redis_key = 'rider.id.' . $session_id;
//$output->writeln('key: ' . $redis_key);
// set to redis cache
$this->redis->set($redis_key, $rider_id);
}
}
return 0;
}
}