<?phpnamespace App\Controller;use App\Repository\DeviceRepository;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\Routing\Annotation\Route;use stdClass;class ApiController extends AbstractController{ /** * @Route("/api/devices", name="api_devices", methods={"POST"}) */ public function devices(Request $request,DeviceRepository $deviceRepository): JsonResponse { $response = new JsonResponse(); $o_dataRetour = new stdClass; $data = json_decode($request->getContent(), true); $idclient = $data['idclient']; $pass = $data['pass']; if($pass == 'CBrEPEdovEmhrmyJTY5twbRB') { $o_dataRetour->etat = true; $devices = $deviceRepository->findDevicesByClient($idclient); $t_devices = array(); foreach ($devices as $device) { $o_device = new stdClass(); $o_device->id = $device->getNumeroSerie(); $o_device->pac = $device->getPac(); $o_device->modele = $device->getModele()->getLibelle(); $o_device->scenario = $device->getScenario()->getLibelle(); $o_device->date = $device->getDateActivation(); $o_device->autonomie = $device->getPourcentageBatterie(); $o_device->etat = $device->getIsBonEtat(); $o_device->libelle = $device->getLibelle(); $o_device->qualiteSignal = $device->getLinkQuality(); $o_device->dateDerniereCommunication = $device->getDateDerniereCommunication(); $o_device->triggerAlert = $device->getTriggerAlert(); $o_device->delaiLimite = $device->getdelaiLimite(); $o_device->gatewayPath = $device->getGatewayPath(); $t_devices[]=$o_device; } $o_dataRetour->devices = $t_devices; } else { $o_dataRetour->etat = false; } $response->setData($o_dataRetour); return $response; } /** * @Route("/api/device", name="api_device", methods={"POST"}) */ public function device(Request $request,DeviceRepository $deviceRepository): JsonResponse { $response = new JsonResponse(); $o_dataRetour = new stdClass; $data = json_decode($request->getContent(), true); $iddevice = $data['iddevice']; $pass = $data['pass']; if($pass == 'CBrEPEdovEmhrmyJTY5twbRB') { $o_dataRetour->etat = true; $device = $deviceRepository->findOneBy(array('numeroSerie'=>$iddevice)); $o_modele = new stdClass(); $o_modele->libelle = $device->getModele()->getLibelle(); $o_modele->type = $device->getModele()->getTypeDevice()->getLibelle(); $o_modele->fonction = $device->getModele()->getFonction(); $o_modele->description = $device->getModele()->getDescription(); if($device->getModele()->getPhoto1() != null) $o_modele->photo1 = stream_get_contents($device->getModele()->getPhoto1()); if($device->getModele()->getPhoto2() != null) $o_modele->photo2 = stream_get_contents($device->getModele()->getPhoto2()); if($device->getModele()->getPhoto3() != null) $o_modele->photo3 = stream_get_contents($device->getModele()->getPhoto3()); $o_scenario = new stdClass(); $o_scenario->libelle = $device->getScenario()->getLibelle(); foreach ($device->getScenario()->getBoutons() as $btn) { $btn->getPositionBouton(); $o_scenario->{"btn".$btn->getPositionBouton()."type"} = $btn->getTypeActionBouton()->getLibelle(); $o_scenario->{"btn".$btn->getPositionBouton()."libelle"} = $btn->getActionBouton(); } $t_protocole = array(); foreach ($device->getModele()->getReseaux() as $reseau) { $t_protocole[] = $reseau->getLibelle(); } $o_device = new stdClass(); $o_device->id = $device->getNumeroSerie(); $o_device->pac = $device->getPac(); $o_device->modele = $o_modele; $o_device->scenario = $o_scenario; $o_device->protocoles = $t_protocole; $o_device->date = $device->getDateActivation(); $o_device->autonomie = $device->getPourcentageBatterie(); $o_device->etat = $device->getIsBonEtat(); $o_device->libelle = $device->getLibelle(); $o_device->qualiteSignal = $device->getLinkQuality(); $o_device->dateDerniereCommunication = $device->getDateDerniereCommunication(); $o_device->triggerAlert = $device->getTriggerAlert(); $o_device->delaiLimite = $device->getdelaiLimite(); $o_device->gatewayPath = $device->getGatewayPath(); $o_dataRetour->device = $o_device; } else { $o_dataRetour->etat = false; } $response->setData($o_dataRetour); return $response; }}