|
@@ -58,20 +58,27 @@ class DeviceManager
|
|
|
{
|
|
|
$devices = array();
|
|
|
$deviceServers = $this->deviceServerRepository->findAll();
|
|
|
+ $dateTime = new \DateTime("now");
|
|
|
+
|
|
|
foreach ($deviceServers as $deviceServer) {
|
|
|
$deviceTypes = $deviceServer->getDeviceTypes();
|
|
|
+
|
|
|
foreach ($deviceTypes as $deviceType) {
|
|
|
$filters = array(
|
|
|
'deviceType' => $deviceType,
|
|
|
);
|
|
|
$remoteDevices = $this->webservice->get($deviceServer->getUrl(), $filters);
|
|
|
+
|
|
|
foreach ($remoteDevices as $remoteDevice) {
|
|
|
$deviceType = $remoteDevice['deviceType'];
|
|
|
$deviceId = $remoteDevice['deviceId'];
|
|
|
+ $tenancyId = $remoteDevice['tenancyId'];
|
|
|
+ $devicesIds[] = $deviceId;
|
|
|
unset($remoteDevice['id']);
|
|
|
unset($remoteDevice['deviceType']);
|
|
|
unset($remoteDevice['deviceId']);
|
|
|
- $device = $this->create($deviceType, $deviceId, $deviceServer, $remoteDevice);
|
|
|
+ unset($remoteDevice['tenancyId']);
|
|
|
+ $device = $this->create($deviceType, $deviceId, $deviceServer, $tenancyId, $remoteDevice, $dateTime);
|
|
|
if ($device) {
|
|
|
$devices[] = $device;
|
|
|
}
|
|
@@ -79,6 +86,15 @@ class DeviceManager
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // Al insertar o actualizar Devices, les actualizamos el updated, luego eliminamos los anteriores a esta corrida.
|
|
|
+ $em = $this->em;
|
|
|
+ $qb = $em->createQueryBuilder();
|
|
|
+ $qb->delete('StatsBundle:Device', 'd');
|
|
|
+ $qb->where($qb->expr()->lt('d.updated', ':now'));
|
|
|
+ $qb->setParameter('now', $dateTime);
|
|
|
+
|
|
|
+ $countDelete = $qb->getQuery()->getResult();
|
|
|
+
|
|
|
return $devices;
|
|
|
}
|
|
|
|
|
@@ -89,13 +105,14 @@ class DeviceManager
|
|
|
*
|
|
|
* @return Device
|
|
|
*/
|
|
|
- public function create($deviceType, $deviceId, $deviceServer, $data = array())
|
|
|
+ public function create($deviceType, $deviceId, $deviceServer, $tenancyId, $data = array(), $dateTime)
|
|
|
{
|
|
|
$device = null;
|
|
|
$_device = $this->deviceRepository->findOneBy(array(
|
|
|
'deviceType' => $deviceType,
|
|
|
'deviceId' => $deviceId,
|
|
|
'deviceServer' => $deviceServer,
|
|
|
+ 'tenancyId' => $tenancyId,
|
|
|
));
|
|
|
if (is_null($_device)) {
|
|
|
$device = new Device();
|
|
@@ -105,6 +122,8 @@ class DeviceManager
|
|
|
$device->setDeviceType($deviceType);
|
|
|
$device->setDeviceId($deviceId);
|
|
|
$device->setDeviceServer($deviceServer);
|
|
|
+ $device->setTenancyId($tenancyId);
|
|
|
+ $device->setUpdated($dateTime);
|
|
|
foreach ($data as $column => $value) {
|
|
|
$method = 'set'.ucfirst($column);
|
|
|
if (method_exists($device, $method)) {
|