<?php
namespace App\Service;
use App\EntityOtpusk\Tcities;
use App\EntityOtpusk\Tcountries;
use App\EntityOtpusk\Tregions;
use App\RepositoryOtpusk\CitiesRepository;
use App\RepositoryOtpusk\CountriesRepository;
use App\RepositoryOtpusk\RegionsRepository;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry;
class OtpuskDbService
{
/**
* @var \App\RepositoryOtpusk\RegionsRepository
*/
private RegionsRepository $regionsRepository;
public function __construct(
ManagerRegistry $doctrine,
CitiesRepository $citiesRepository,
CountriesRepository $countriesRepository,
RegionsRepository $regionsRepository
) {
$this->doctrine = $doctrine;
$this->citiesRepository = $citiesRepository;
$this->countriesRepository = $countriesRepository;
$this->regionsRepository = $regionsRepository;
}
public function findByRecId($id = null, $type)
{
$anotherEm = $this->doctrine->getManager('otpusk');
switch ($type) {
case 'country':
return $anotherEm->getRepository(Tcountries::class)->findOneBy(['recId' => $id]);
break;
case 'city':
return $anotherEm->getRepository(Tcities::class)->findOneBy(['recId' => $id]);
break;
case 'region':
return $anotherEm->getRepository(Tregions::class)->findOneBy(['recId' => $id]);
break;
default:
break;
}
}
public function findAll($type)
{
$anotherEm = $this->doctrine->getManager('otpusk');
switch ($type) {
case 'country':
return $anotherEm->getRepository(Tcountries::class)->findAll();
break;
case 'city':
return $anotherEm->getRepository(Tcities::class)->findAll();
break;
case 'region':
return $anotherEm->getRepository(Tregions::class)->findAll();
break;
default:
break;
}
}
public function findByName($name = null, $type)
{
$anotherEm = $this->doctrine->getManager('otpusk');
switch ($type) {
case 'country':
return $this->countriesRepository->findOneByName($name);
break;
case 'city':
return $this->citiesRepository->findOneByName($name);
break;
case 'region':
return $this->regionsRepository->findOneByName($name);
break;
default:
break;
}
}
public function country($id = null)
{
$anotherEm = $this->doctrine->getManager('otpusk');
return $anotherEm->getRepository(Tcountries::class)
->findOneBy(['recId' => $id]);
}
}