From 69c033f36a25888c162850e4ee46289c900e6704 Mon Sep 17 00:00:00 2001 From: Michael Schmidt Date: Fri, 25 Oct 2013 17:18:23 +0200 Subject: [PATCH] Some parts restructured --- api.php | 19 +++++++++------- classes/class.datahandler.php | 43 +++++++++++++++++------------------ classes/class.request.php | 9 ++++++++ 3 files changed, 41 insertions(+), 30 deletions(-) create mode 100644 classes/class.request.php diff --git a/api.php b/api.php index d6b1851..4cdc0da 100644 --- a/api.php +++ b/api.php @@ -1,4 +1,5 @@ id = (string) $_GET['id']; - $datahandler = new DataHandler($id); + $datahandler = new DataHandler($request); echo json_encode($datahandler->_get()); break; // write new data or update existing data case 'set': - $id = (isset($_POST['id'])) ? (string) $_POST['id'] : 0; - $version = (isset($_POST['version'])) ? (string) $_POST['version'] : ''; - if (!isset($_POST['data'])) break; - $data = (string) $_POST['data']; + + $request = new Request(); + $request->id = (isset($_POST['id'])) ? (string) $_POST['id'] : ''; + $request->version = (isset($_POST['version'])) ? (string) $_POST['version'] : ''; + $request->data = (string) $_POST['data']; - $datahandler = new DataHandler($id); - echo json_encode($datahandler->_set($data, $version)); + $datahandler = new DataHandler($request); + echo json_encode($datahandler->_set()); break; } } diff --git a/classes/class.datahandler.php b/classes/class.datahandler.php index f38a372..e010c5d 100644 --- a/classes/class.datahandler.php +++ b/classes/class.datahandler.php @@ -1,4 +1,7 @@ getNewId(); - $this->id = preg_replace('/[^0-9a-zA-Z]/', '', $id); // remove every char, except allowed + public function __construct(Request &$request) { + $this->request =& $request; + if ($request->id === '') $request->id = $this->getNewId(); + $request->id = preg_replace('/[^0-9a-zA-Z]/', '', $request->id); // remove every char, except allowed $this->return = new stdClass(); } public function _get() { - $this->return->id = $this->id; + $this->return->id = $this->request->id; $data = $this->readData(); if ($data === false) { @@ -39,12 +42,8 @@ class DataHandler { return $this->return; } - public function _set($data, $version = '') { - $data = (string) $data; - $version = (string) $version; - - $this->return = new stdClass(); - $this->return->id = $this->id; + public function _set() { + $this->return->id = $this->request->id; // try to read existing data $data_org = $this->readData(); @@ -135,20 +134,20 @@ class DataHandler { protected function readData() { // check if must have files exist - if (!file_exists(self::DATA_FOLDER.$this->id."/head") OR - !file_exists(self::DATA_FOLDER.$this->id."/data")) { + if (!file_exists(self::DATA_FOLDER.$this->request->id."/head") OR + !file_exists(self::DATA_FOLDER.$this->request->id."/data")) { return false; } $data = new stdClass(); - $data->head = file_get_contents(self::DATA_FOLDER.$this->id."/head"); - $data->data = file_get_contents(self::DATA_FOLDER.$this->id."/data"); + $data->head = file_get_contents(self::DATA_FOLDER.$this->request->id."/head"); + $data->data = file_get_contents(self::DATA_FOLDER.$this->request->id."/data"); $data->user = array (); $i = 0; while (true) { - if (file_exists(self::DATA_FOLDER.$this->id."/user_".$i)) { - $data->user[] = file_get_contents(self::DATA_FOLDER.$this->id."/user_".$i); + if (file_exists(self::DATA_FOLDER.$this->request->id."/user_".$i)) { + $data->user[] = file_get_contents(self::DATA_FOLDER.$this->request->id."/user_".$i); $i++; } else break; @@ -158,8 +157,8 @@ class DataHandler { } protected function writeData($data) { - if (!file_exists(self::DATA_FOLDER.$this->id."/")) { - if (!mkdir(self::DATA_FOLDER.$this->id)) { + if (!file_exists(self::DATA_FOLDER.$this->request->id."/")) { + if (!mkdir(self::DATA_FOLDER.$this->request->id)) { $this->return->result = false; $this->return->errorMsg = 'data could not be written 1'; return false; @@ -181,9 +180,9 @@ class DataHandler { } protected function writeDatum($typ, $data) { - if(file_put_contents(self::DATA_FOLDER.$this->id.'/'.$typ, $data, LOCK_EX) === false) { + if(file_put_contents(self::DATA_FOLDER.$this->request->id.'/'.$typ, $data, LOCK_EX) === false) { $this->return->result = false; - $this->return->errorMsg = 'data could not be written 2'.$typ; + $this->return->errorMsg = 'data could not be written to '.$typ; return false; } diff --git a/classes/class.request.php b/classes/class.request.php new file mode 100644 index 0000000..8859068 --- /dev/null +++ b/classes/class.request.php @@ -0,0 +1,9 @@ +