request->do; $data = []; switch ($do) { case "addModule": $return = $this->addModule(); break; case "removeModule": $return = $this->removeModule(); break; case "updateModule": $return = $this->updateModule(); break; default: $return = false; } if (!is_array($return) || !count($return)) { $data = ["status" => "error"]; $this->returnJson($data); } $data['status'] = "OK"; $data['result'] = $return; $this->returnJson($data); } private function addModule() { $ports = 0; $r = $this->request; $id = $r->id; $data = []; $data['poprack_id'] = $r->poprack_id; $data['type'] = $r->type; if ($data['type'] == 0) { $data['ports'] = ($r->ports) ? $r->ports : null; $ports = $data['ports']; $data['plug'] = ($r->plug) ? $r->plug : null; } if ($data['type'] == 1) { $data['device_id'] = ($r->device_id) ? $r->device_id : null; } $data['name'] = ($r->name) ? $r->name : null; $data['start_he'] = $r->start_he; $data['end_he'] = $r->end_he; $data['width'] = $r->width; $data['position'] = ($r->position) ? $r->position : null; $poprackmodule = PoprackmoduleModel::create($data); $new_id = $poprackmodule->save(); // var_dump($r);die(); if (!$new_id) { $response['success'] = false; } else { $response['success'] = true; if ($data['type'] == 0) { unset($data); $data = []; $data['poprackmodule_id'] = $new_id; for ($i = 1; $i <= $ports; $i++) { $data['port'] = $i; $poprackmodulepatch = PoprackmodulepatchModel::create($data); $poprackmodulepatch->save(); } } } echo json_encode($response); exit; } private function updateModule() { $r = $this->request; $id = $r->id; if (is_numeric($id) && $id > 0) { $poprackmodule = new Poprackmodule($id); if (!$poprackmodule->id) { $response['success'] = false; echo json_encode($response); exit; die(); } } $data = []; if ($r->type == 0) { $data['ports'] = ($r->ports) ? $r->ports : null; $data['plug'] = ($r->plug) ? $r->plug : null; $poprackmodulepatchcounter = PoprackmodulepatchModel::countAllModule($id); if ($poprackmodulepatchcounter > $data['ports']) { for ($i = $poprackmodulepatchcounter; $i > $data['ports']; $i--) { PoprackmodulepatchModel::deletebyPort($id, $i); } } else if ($poprackmodulepatchcounter < $data['ports']) { $datapatchModel=[]; for ($i = $poprackmodulepatchcounter + 1; $i <= $data['ports']; $i++) { $datapatchModel['poprackmodule_id'] = $id; $datapatchModel['port'] = $i; $poprackmodulepatch = PoprackmodulepatchModel::create($datapatchModel); $poprackmodulepatch->save(); } } } $data['name'] = ($r->name); $poprackmodule->update($data); $new_id = $poprackmodule->save(); if (!$new_id) { $response['success'] = false; } else { $response['success'] = true; } echo json_encode($response); exit; } private function removeModule() { $id = $this->request->id; $poprackmodule = new Poprackmodule($id); if (!$poprackmodule->id || $poprackmodule->id != $id) { $response['success'] = false; } else { $poprackmodule->delete(); $response['success'] = true; } echo json_encode($response); exit; } }