From 953aa52584672328dc6df882d01bbd78736e7017 Mon Sep 17 00:00:00 2001 From: Ivan Diaz Date: Sat, 14 May 2016 19:08:30 -0300 Subject: [PATCH] [Ivan Diaz] - OS-#39 - Add User/Ticket/Comment classes --- server/controllers/user/signup.php | 2 +- server/index.php | 8 ++++--- server/libs/FileUploader.php | 18 +++++++++++++++ server/libs/Hashing.php | 10 +++++++++ server/models/Comment.php | 19 ++++++++++++++++ server/models/DataStore.php | 16 +++++--------- server/models/Ticket.php | 26 ++++++++++++++++++++++ server/models/User.php | 35 ++++++++++++------------------ 8 files changed, 98 insertions(+), 36 deletions(-) create mode 100644 server/libs/FileUploader.php create mode 100644 server/libs/Hashing.php create mode 100644 server/models/Comment.php create mode 100644 server/models/Ticket.php diff --git a/server/controllers/user/signup.php b/server/controllers/user/signup.php index 2a143e3b..a38559d3 100644 --- a/server/controllers/user/signup.php +++ b/server/controllers/user/signup.php @@ -19,7 +19,7 @@ class SignUpController extends Controller { $userInstance = new User(); $userInstance->setProperties(array( 'email' => $email, - 'password' => User::hashPassword($password) + 'password' => Hashing::hashPassword($password) )); return $userInstance->store(); diff --git a/server/index.php b/server/index.php index ba5ea782..d4617e88 100644 --- a/server/index.php +++ b/server/index.php @@ -10,6 +10,11 @@ RedBean::setup('mysql:host='. $mysql_host .';dbname=' . $mysql_database, $mysql_ \Slim\Slim::registerAutoLoader(); $app = new \Slim\Slim(); +// LOAD LIBRARIES +include_once 'libs/Controller.php'; +include_once 'libs/ControllerGroup.php'; +include_once 'libs/Hashing.php'; + // LOAD MODELS spl_autoload_register(function ($class) { $classPath = "models/{$class}.php"; @@ -20,9 +25,6 @@ spl_autoload_register(function ($class) { }); // LOAD CONTROLLERS -include_once 'libs/Controller.php'; -include_once 'libs/ControllerGroup.php'; - foreach (glob('controllers/*.php') as $controller) { include $controller; } diff --git a/server/libs/FileUploader.php b/server/libs/FileUploader.php new file mode 100644 index 00000000..55eb9bbc --- /dev/null +++ b/server/libs/FileUploader.php @@ -0,0 +1,18 @@ +_bean = RedBean::dispense(static::TABLE); - $defaultProperties = $this->getDefaultProperties(); + $defaultProperties = $this->getDefaultProps(); foreach ($defaultProperties as $PROP => $VALUE) { $this->_bean[$PROP] = $VALUE; @@ -29,15 +29,9 @@ abstract class DataStore { } } - protected static function deleteDataStore($dataStore) { - if ($dataStore instanceof DataStore) { - RedBean::trash($dataStore->getBeanInstance()); - unset($dataStore); - return true; - } - else { - return false; - } + public function delete() { + RedBean::trash($this->getBeanInstance()); + unset($this); } public function getBeanInstance() { diff --git a/server/models/Ticket.php b/server/models/Ticket.php new file mode 100644 index 00000000..61edcc58 --- /dev/null +++ b/server/models/Ticket.php @@ -0,0 +1,26 @@ +password)) ? $user : null; + return ($user && Hashing::verifyPassword($userPassword, $user->password)) ? $user : null; } public static function getProps() { return array( 'email', - 'password' + 'password', + 'name', + 'verificationToken', + 'ownTickets' ); } public function getDefaultProperties() { - return array(); + return array( + 'ownTickets' => [] + ); + } + + public function addTicket($ticket) { + $this->ownTickets[] = $ticket; } public static function getUser($value, $property = 'id') { return parent::getDataStore($value, $property); } - - public static function deleteUser($user) { - parent::deleteDataStore($user); - } - - public function showUserDetails() { - return $this->_user; - } }