<?php
namespace App\Service;
use App\Repository\OpenDayRepository;
use Symfony\Contracts\Translation\TranslatorInterface;
/**
* Class OpenDayService
* @package App\Service
*/
class OpenDayService extends BaseService
{
/**
* OpenDayService constructor.
* @param OpenDayRepository $repository
*/
public function __construct(
OpenDayRepository $repository,
BaseService $baseService,
TranslatorInterface $translator
) {
$this->reflectFromParent($baseService);
$this->repository = $repository;
$this->translator = $translator;
}
public function filter($request)
{
$requestData = null;
if ($request) {
foreach ($request as $key => $value) {
if (empty($value)) continue;
if (in_array($key, ['campuses'])) {
$requestData['memberOf_' . $key] = $value;
}
}
}
return $this->repository->getOpendayInMonth($requestData);
}
public function getById($id)
{
return $this->repository->getOneBy(['filter_id' => $id]);
}
public function updateStatus($request)
{
$entity = $this->get($request->get('id'));
$status = $request->get('status');
$entity->setStatus($status);
$this->repository->save($entity);
return $this->autoMapper->map($entity, 'App\DTO\OpenDay\OpenDayOutput');
}
public function deleteEntity($id)
{
if ($this->openDayPersonRepo->findOneBy(['openDay' => $id])) {
return $this->translator->trans('openDay_person_exits');
}
return $this->delete($id);
}
}