From c65d95621d2e8a95fd5774f2345f2f3890d65227 Mon Sep 17 00:00:00 2001 From: xoxel Date: Sat, 15 Dec 2018 07:50:02 +0100 Subject: [PATCH] fix random ID --- src/API/APIUser.php | 73 ++++++++++++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 28 deletions(-) diff --git a/src/API/APIUser.php b/src/API/APIUser.php index c7826e6..5e185f5 100644 --- a/src/API/APIUser.php +++ b/src/API/APIUser.php @@ -5,12 +5,14 @@ namespace WebProjectFitness\API; use WebProjectFitness\Model\BDTables; use WebProjectFitness\Model\Model; -class APIUser extends API { +class APIUser extends API +{ private $declaredFunctions = [ 'create' => [ 'method' => 'POST', - 'params' => [] + 'params' => [ + ] ], 'modify' => [ 'method' => 'POST', @@ -103,58 +105,73 @@ class APIUser extends API { ] ] ] + + ]; - public function __construct() { - parent::__construct( $this->declaredFunctions ); + public function __construct() + { + parent::__construct($this->declaredFunctions); } //functions for user table. - public function create() { - $id = uniqid(); - $id = substr( $id, 0, 6 ); - Model::insert( BDTables::USER, [ + public function create($data) + { + $bytes = null; + if (function_exists("random_bytes")) { + $bytes = random_bytes(ceil(6 / 2)); + } elseif (function_exists("openssl_random_pseudo_bytes")) { + $bytes = openssl_random_pseudo_bytes(ceil(6 / 2)); + } + $id = substr(bin2hex($bytes), 0, 6); + Model::insert(BDTables::USER, [ "name" => "", "user_id" => $id - ] ); - $this->returnJson( [ 'id' => $id ] ); + ]); + $this->returnJson(['id' => $id]); } - public function modify( $data ) { - Model::update( BDTables::USER, [ 'name' => $data[ 'name' ] ], "user_id", $data[ 'user_id' ] ); - $this->returnJson( [ 'name' => $data[ 'name' ], 'id' => $data[ 'user_id' ] ] ); + public function modify($data) + { + Model::update(BDTables::USER, ['name' => $data['name']], "user_id", $data['user_id']); + $this->returnJson(['name' => $data['name'], 'id' => $data['user_id']]); } //Functions for favorite table. - public function favoriteAdd( $data ) { - Model::insert( BDTables::FAVORITE, [ 'id_user' => $data[ 'id_user' ], 'id_exercise' => $data[ 'id_exercise' ] ] ); - $this->returnJson( [ 'id_user' => $data[ 'id_user' ], 'id_exercise' => $data[ 'id_exercise' ] ] ); + public function favoriteAdd($data) + { + Model::insert(BDTables::FAVORITE, ['id_user' => $data['id_user'], 'id_exercise' => $data['id_exercise']]); + $this->returnJson(['id_user' => $data['id_user'], 'id_exercise' => $data['id_exercise']]); } - public function favoriteDelete( $data ) { - Model::delete( BDTables::FAVORITE, [ 'id_user' => $data[ 'id_user' ], 'id_exercise' => $data[ 'id_exercise' ] ] ); - $this->returnJson( [ 'id_user' => $data[ 'id_user' ], 'id_exercise' => $data[ 'id_exercise' ] ] ); + public function favoriteDelete($data) + { + Model::delete(BDTables::FAVORITE, ['id_user' => $data['id_user'], 'id_exercise' => $data['id_exercise']]); + $this->returnJson(['id_user' => $data['id_user'], 'id_exercise' => $data['id_exercise']]); } //functions for training table - public function trainingAdd( $data ) { - Model::insert( BDTables::TRAINING, [ 'id_user' => $data[ 'id_user' ], 'id_exercise' => $data[ 'id_exercise' ], 'id_order' => $data[ 'id_order' ] ] ); - $this->returnJson( [ 'id_user' => $data[ 'id_user' ], 'id_exercise' => $data[ 'id_exercise' ], 'id_order' => $data[ 'id_order' ] ] ); + public function trainingAdd($data) + { + Model::insert(BDTables::TRAINING, ['id_user' => $data['id_user'], 'id_exercise' => $data['id_exercise'], 'id_order' => $data['id_order']]); + $this->returnJson(['id_user' => $data['id_user'], 'id_exercise' => $data['id_exercise'], 'id_order' => $data['id_order']]); } - public function trainingDelete( $data ) { - Model::delete( BDTables::TRAINING, [ 'id_user' => $data[ 'id_user' ], 'id_exercise' => $data[ 'id_exercise' ], 'id_order' => $data[ 'id_order' ] ] ); + public function trainingDelete($data) + { + Model::delete(BDTables::TRAINING, ['id_user' => $data['id_user'], 'id_exercise' => $data['id_exercise'], 'id_order' => $data['id_order']]); - $this->returnJson( [ 'id_user' => $data[ 'id_user' ], 'id_exercise' => $data[ 'id_exercise' ], 'id_order' => $data[ 'id_order' ] ] ); + $this->returnJson(['id_user' => $data['id_user'], 'id_exercise' => $data['id_exercise'], 'id_order' => $data['id_order']]); } - public function trainingChangeOrder( $data ) { - Model::update_order( BDTables::TRAINING, [ 'id_user' => $data[ 'id_user' ], 'id_order' => $data[ 'id_order' ], 'id_exercise' => $data[ 'id_exercise' ] ], $data[ 'new_order' ] ); + public function trainingChangeOrder($data) + { + Model::update_order(BDTables::TRAINING, ['id_user' => $data['id_user'], 'id_order' => $data['id_order'], 'id_exercise' => $data['id_exercise'] ], $data['new_order']); - $this->returnJson( [ 'id_user' => $data[ 'id_user' ], 'id_exercise' => $data[ 'id_exercise' ], 'id_order' => $data[ 'id_order' ], 'new_order' => $data[ 'new_order' ] ] ); + $this->returnJson(['id_user' => $data['id_user'], 'id_exercise' => $data['id_exercise'], 'id_order' => $data['id_order'], 'new_order' => $data['new_order']]); } } \ No newline at end of file