|
@@ -66,7 +66,12 @@ class DeviceManager
|
|
|
);
|
|
|
$remoteDevices = $this->webservice->get($deviceServer->getUrl(), $filters);
|
|
|
foreach ($remoteDevices as $remoteDevice) {
|
|
|
- $device = $this->create($remoteDevice['deviceType'], $remoteDevice['deviceId'], $remoteDevice['ip']);
|
|
|
+ $deviceType = $remoteDevice['deviceType'];
|
|
|
+ $deviceId = $remoteDevice['deviceId'];
|
|
|
+ unset($remoteDevice['id']);
|
|
|
+ unset($remoteDevice['deviceType']);
|
|
|
+ unset($remoteDevice['deviceId']);
|
|
|
+ $device = $this->create($deviceType, $deviceId, $remoteDevice);
|
|
|
if ($device) {
|
|
|
$devices[] = $device;
|
|
|
}
|
|
@@ -80,18 +85,25 @@ class DeviceManager
|
|
|
/**
|
|
|
* @param string $deviceType
|
|
|
* @param int $deviceId
|
|
|
- * @param string $ip
|
|
|
+ * @param array $data
|
|
|
*
|
|
|
* @return StatsDevice
|
|
|
*/
|
|
|
- public function create($deviceType, $deviceId, $ip)
|
|
|
+ public function create($deviceType, $deviceId, $data = array())
|
|
|
{
|
|
|
$device = null;
|
|
|
- if (is_null($this->statsDeviceRepository->findOneByIp($ip))) {
|
|
|
+ $statsDevice = $this->statsDeviceRepository->findOneBy(array(
|
|
|
+ 'deviceType' => $deviceType,
|
|
|
+ 'deviceId' => $deviceId,
|
|
|
+ ));
|
|
|
+ if (is_null($statsDevice)) {
|
|
|
$device = new StatsDevice();
|
|
|
$device->setDeviceType($deviceType);
|
|
|
$device->setDeviceId($deviceId);
|
|
|
- $device->setIp($ip);
|
|
|
+ foreach ($data as $column => $value) {
|
|
|
+ $method = 'set'.ucfirst($column);
|
|
|
+ $device->$method($value);
|
|
|
+ }
|
|
|
|
|
|
if ($this->validator->validate($device)->count() == 0) {
|
|
|
$this->em->persist($device);
|