167 lines
5.5 KiB
PHP
167 lines
5.5 KiB
PHP
<?php
|
|
|
|
namespace WebProjectFitness\API;
|
|
|
|
use WebProjectFitness\Model\BDTables;
|
|
use WebProjectFitness\Model\Model;
|
|
|
|
class APIUser extends API {
|
|
|
|
private $declaredFunctions = [
|
|
'create' => [
|
|
'method' => 'POST',
|
|
'params' => []
|
|
],
|
|
'modify' => [
|
|
'method' => 'POST',
|
|
'params' => [
|
|
'user_id' => [
|
|
'required' => true,
|
|
'type' => 'string'
|
|
],
|
|
'name' => [
|
|
'required' => true,
|
|
'type' => 'string'
|
|
]
|
|
]
|
|
],
|
|
'favorite-delete' => [
|
|
'method' => 'POST',
|
|
'params' => [
|
|
'id_user' => [
|
|
'required' => true,
|
|
'type' => 'string'
|
|
],
|
|
'id_exercise' => [
|
|
'required' => true,
|
|
'type' => 'int'
|
|
]
|
|
]
|
|
],
|
|
'favorite-add' => [
|
|
'method' => 'POST',
|
|
'params' => [
|
|
'id_user' => [
|
|
'required' => true,
|
|
'type' => 'string'
|
|
],
|
|
'id_exercise' => [
|
|
'required' => true,
|
|
'type' => 'int'
|
|
]
|
|
]
|
|
],
|
|
'training-add' => [
|
|
'method' => 'POST',
|
|
'params' => [
|
|
'id_user' => [
|
|
'required' => true,
|
|
'type' => 'string'
|
|
],
|
|
'id_exercise' => [
|
|
'required' => true,
|
|
'type' => 'int'
|
|
], 'id_order' => [
|
|
'required' => true,
|
|
'type' => 'int'
|
|
]
|
|
]
|
|
],
|
|
'training-delete' => [
|
|
'method' => 'POST',
|
|
'params' => [
|
|
'id_user' => [
|
|
'required' => true,
|
|
'type' => 'string'
|
|
],
|
|
'id_exercise' => [
|
|
'required' => true,
|
|
'type' => 'int'
|
|
], 'id_order' => [
|
|
'required' => true,
|
|
'type' => 'int'
|
|
]
|
|
]
|
|
],
|
|
'training-change-order' => [
|
|
'method' => 'POST',
|
|
'params' => [
|
|
'id_user' => [
|
|
'required' => true,
|
|
'type' => 'string'
|
|
],
|
|
'id_exercise' => [
|
|
'required' => true,
|
|
'type' => 'int'
|
|
], 'id_order' => [
|
|
'required' => true,
|
|
'type' => 'int'
|
|
],
|
|
'new_order' => [
|
|
'required' => true,
|
|
'type' => 'int'
|
|
]
|
|
]
|
|
]
|
|
|
|
|
|
];
|
|
|
|
public function __construct() {
|
|
parent::__construct( $this->declaredFunctions );
|
|
}
|
|
|
|
|
|
//functions for user table.
|
|
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 ] );
|
|
}
|
|
|
|
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 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 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' ] ] );
|
|
}
|
|
|
|
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' ] ] );
|
|
}
|
|
|
|
} |