<?php
namespace App\Mobile;
use App\Entity\Branch;
use App\Entity\SystemUser;
use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Persistence\ObjectManager;
use JMS\Serializer\SerializationContext;
use JMS\Serializer\SerializerBuilder;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class BranchesController extends AbstractController {
private ObjectManager $em;
public function __construct(ManagerRegistry $managerRegistry)
{
$this->em = $managerRegistry->getManager();
}
/**
* @Route("/branches", methods={"POST"}, name="systemBranches")
* @param LoggerInterface $logger
* @param Request $request
* @return Response
*/
public function branches(LoggerInterface $logger, Request $request): Response
{
$em = $this->em;
$data = $request->getContent();
$logger->info("-------------------------------------------------");
$logger->info($data);
$logger->info("-------------------------------------------------");
$branches = json_decode($data);
foreach ($branches as $item) {
$branch = new Branch();
$branch->setBranchCode($item->branch_code);
$branch->setPhone($item->phone);
$branch->setEmail($item->email);
$branch->setBranchName($item->branch_name);
$branch->setContactPerson($item->person);
$branch->setActive($item->active);
$branch->setCreatedAt(new \DateTime());
$em->persist($branch);
}
//
$em->flush();
return new Response('OK', Response::HTTP_OK);
}
/**
* @Route("/branches", methods={"GET"}, name="getSystemBranches")
* @param LoggerInterface $logger
* @param Request $request
* @return Response
*/
public function getBranches(LoggerInterface $logger, Request $request): Response {
$em = $this->em;
$branches = $em->getRepository(Branch::class)->findBy([
'active' => true
]);
$context = new SerializationContext();
$context->setSerializeNull(true);
$serializer = SerializerBuilder::create()->build();
$data = $serializer->serialize($branches, 'json', $context);
return new Response($data, Response::HTTP_OK, [
'content-type'=>'application/json'
]);
}
}