Files
thetool/application/Api/v1/DeviceApicontroller.php
Spitzer Daniel 6e02b849bd Device Update
* Device Backups können nun automatisch übers Tool getriggert werden

Zeiterfassung Update
 * Vorbereitung für ZA Buchungen
2024-03-10 21:25:23 +01:00

67 lines
2.3 KiB
PHP

<?php
class DeviceApicontroller extends mfBaseApicontroller
{
protected function init()
{
$db = $this->db(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
$this->addRoute("/device/getDevices", "getDevices", "GET");
$this->addRoute("/device/updateDevices", "updateDevices", "POST");
}
protected function getDevices()
{
$devices = DeviceModel::getAll();
foreach ($devices as $key => $device) {
$deviceReturn[$key]['id'] = $device->id;
$deviceReturn[$key]['name'] = $device->name;
$deviceReturn[$key]['ip'] = $device->ip;
$deviceReturn[$key]['snmp_version'] = $device->snmp_version;
$deviceReturn[$key]['serial'] = $device->serial;
$deviceReturn[$key]['last_config_backup'] = $device->last_config_backup;
$deviceReturn[$key]['manufactor'] = $device->devicetype->devicemanufactor->name;
$deviceReturn[$key]['autobackup'] = $device->autobackup;
}
return mfResponse::Ok($deviceReturn);
}
protected function updateDevices()
{
$id = $this->post['id'];
$changeArray[] = 'last_config_backup';
if ($id) {
$device = new Device($id);
if (!$device->id) {
return mfResponse::BadRequest(['message' => "Device not found"]);
}
$data = [];
foreach ($this->post as $keychanges => $changes) {
if (in_array($keychanges, $changeArray)) {
if ($changes == "null" || empty($changes)) {
$data[$keychanges] = NULL;
} else {
$data[$keychanges] = $changes;
}
}
}
if (!empty($data)) {
$device->update($data);
$device->save();
$result['message'] = 'Device update success';
$result['updates'] = implode(",", array_keys($data));
return mfResponse::Ok($result);
} else {
return mfResponse::BadRequest(['message' => "Keine Update Felder angegeben"]);
}
} else {
return mfResponse::BadRequest(['message' => "Device id nicht angegeben"]);
}
}
}