0, "message" => "Success", "data" => "", ); public function __construct($post, $files) { $this->filesData = $files; $this->action = $this->get_action($post); $this->type = $this->get_type($post); $this->data = $this->get_data($post); $this->postData = $post; $this->dao = new Dao(); } public function do_action() { $result = -1; if ($this->type == "image") { $result = $this->save_image(); } else if (count($this->data) > 0) { if ($this->action == "create") $result = $this->create(); else if ($this->action == "update") $result = $this->update(); else if ($this->action == "remove") $result = $this->remove(); else $this->setUnknownActionResponse(); } else if ($this->action == "get") $result = $this->get(); else $this->setUnknownDataResponse(); if ($this->responseArray["status"] == 0 && $result < 0) { $this->setProcessingErrorResponse(); $result = -1; } $this->responseArray["data"] = $result; return $this->responseArray; } private function save_image() { $success = true; if ($this->filesData["image"]["size"] > 0 && $this->data != null) { $uploadPath = $this->uploadBaseDir.$this->data.".jpg"; if (move_uploaded_file($this->filesData["image"]["tmp_name"], $uploadPath)) { $this->responseArray["message"] = "Image upload success"; } else { $this->responseArray["message"] = "Image upload failure: ". $uploadPath; $this->responseArray["status"] = 1; $success = false; } } else { $this->responseArray["message"] = "No valid file to send"; $this->responseArray["status"] = 1; $success = false; } if ($success) return 0; else return json_encode($this->filesData)."id: ".$this->data; } function create() { $result = -1; if ($this->type == "article") { $result = $this->dao->create_article($this->data); } else if ($this->type == "category") { $result = $this->dao->create_category($this->data); } else if ($this->type == "article_categories") { $result = $this->dao->remove_article_categories_of_article($this->data['id']); if ($result) $result = $this->dao->save_article_categories($this->data['id'], $this->data['categories']); } else $this->setUnknownTypeResponse(); return $result; } function update() { $result = -1; if ($this->type == "article") { $result = $this->dao->update_article($this->data); } else if ($this->type == "category") { $result = $this->dao->update_category($this->data); } else $this->setUnknownTypeResponse(); return $result; } function remove() { $result = -1; if ($this->type == "article") { $result = $this->dao->remove_article($this->data); } else if ($this->type == "category") { $result = $this->dao->remove_category($this->data); } else $this->setUnknownTypeResponse(); if ($result == 0) return -1; else return 1; } function get() { $result = -1; if ($this->type == "article") { $result = $this->dao->get_articles(); } else if ($this->type == "category") { $result = $this->dao->get_categories(); } else if ($this->type == "article_categories") { $result = $this->dao->get_article_categories(); } else $this->setUnknownTypeResponse(); return $result; } function setUnknownTypeResponse() { $this->responseArray["status"] = 1; $this->responseArray["message"] = "Error: Unknown type"; } function setUnknownActionResponse() { $this->responseArray["status"] = 2; $this->responseArray["message"] = "Error: Unknown action"; } function setUnknownDataResponse() { $this->responseArray["status"] = 3; $this->responseArray["message"] = "Error: Unknown data"; } function setProcessingErrorResponse() { $this->responseArray["status"] = 4; $this->responseArray["message"] = "Error: Data processing error"; } private function get_action($inputData) { if (!in_array($inputData["action"], $this->valid_actions)) return ""; else return $inputData["action"]; } private function get_type($inputData) { if (!in_array($inputData["type"], $this->valid_types)) return ""; else return $inputData["type"]; } private function get_data($inputData) { if ($inputData["data"] == null) return []; else return $inputData["data"]; } }