resq/src/Controller/CAPI/MunicipalityController.php

63 lines
1.6 KiB
PHP

<?php
namespace App\Controller\CAPI;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Doctrine\ORM\Query;
use Doctrine\ORM\EntityManagerInterface;
use Catalyst\APIBundle\Controller\APIController;
use Catalyst\APIBundle\Response\APIResponse;
use App\Entity\Municipality;
use Catalyst\APIBundle\Access\Generator as ACLGenerator;
class MunicipalityController extends APIController
{
protected $acl_gen;
public function __construct(ACLGenerator $acl_gen)
{
$this->acl_gen = $acl_gen;
}
public function getAll(EntityManagerInterface $em)
{
$this->denyAccessUnlessGranted('municipality.list', null, 'No access.');
$muns = $em->getRepository(Municipality::class)->findBy([], ['province_name' => 'ASC', 'name' => 'ASC']);
$result = [];
$provinces = [];
foreach ($muns as $m)
{
$pid = $m->getProvinceID();
$pname = $m->getProvinceName();
$mid = $m->getID();
$mname = $m->getName();
if (!isset($provinces[$pid]))
{
$provinces[$pid] = [
'id' => $pid,
'name' => $pname,
'municipalities' => [],
];
}
// error_log("$pid - $pname - $mid - $mname");
$provinces[$pid]['municipalities'][$mid] = [
'id' => $mid,
'name' => $mname,
];
}
$data = [
'provinces' => $provinces,
];
return new APIResponse(true, 'Municipalities loaded.', $data);
}
}