Implemented Movie object

This commit is contained in:
Pierre 2018-04-22 08:53:12 +02:00
parent 604fddd38c
commit 0bec88bda4
4 changed files with 76 additions and 48 deletions

View File

@ -0,0 +1,50 @@
<?php
/**
* User personnal movies controller
*
* @author Pierre HUBERT
*/
class MoviesController {
/**
* Get the list of movies of the user
*
* @url POST /movies/get_list
*/
public function get_movies_list(){
user_login_required(); //Need login
//Fetch the database
$movies = CS::get()->components->movies->get_list(userID);
//Process the list of movies
foreach($movies as $num=>$movie)
$movies[$num] = $this->MovieToAPI($movie);
return $movies;
}
/**
* Turn movie object into API standard object
*
* @param Movie $movie The movie object to convert
* @return array API information about the movie
*/
public static function MovieToAPI(Movie $movie) : array {
$data = array();
$data["id"] = $movie->get_id();
$data["uri"] = $movie->get_uri();
$data["url"] = $movie->get_url();
$data["userID"] = $movie->get_userID();
$data["name"] = $movie->get_name();
$data["file_type"] = $movie->get_file_type();
$data["size"] = $movie->get_size();
return $data;
}
}

View File

@ -1,26 +0,0 @@
<?php
/**
* User personnal movies controller
*
* @author Pierre HUBERT
*/
class moviesController {
/**
* Get the list of movies of the user
*
* @url POST /movies/get_list
*/
public function get_movies_list(){
user_login_required(); //Need login
//Fetch the database
$movies = CS::get()->components->movies->get_list(userID);
return $movies;
}
}

View File

@ -528,6 +528,10 @@ class postsController {
//Update visibility level
$infos['visibility_level'] = $this::VISIBILITY_LEVELS_API[$infos['visibility_level']];
//Turn movie into API entry (if any)
if($infos["video_infos"] != null)
$infos["video_infos"] = MoviesController::MovieToAPI($infos["video_infos"]);
//Turn survey into API entry (if any)
if($infos["data_survey"] != null)
$infos["data_survey"] = SurveysController::SurveyToAPI($infos["data_survey"]);

View File

@ -28,7 +28,7 @@ class Movies {
$movies = array();
foreach($results as $row)
$movies[] = $this->parse_db_infos($row);
$movies[] = $this->dbToMovie($row);
return $movies;
}
@ -37,9 +37,9 @@ class Movies {
* Get informations about a movie
*
* @param int $movieID The ID of the target movie
* @return array Informations about the movie (empty in case of failure)
* @return Movie Information about the movie (empty in case of failure)
*/
public function get_infos(int $movieID) : array {
public function get_infos(int $movieID) : Movie {
//Perform a request in the database
$condition = "WHERE ID = ?";
@ -50,7 +50,7 @@ class Movies {
if(count($result) == 0)
return array();
return $this->parse_db_infos($result[0]);
return $this->dbToMovie($result[0]);
}
@ -73,35 +73,35 @@ class Movies {
public function get_owner(int $movieID) : int {
//Get infos about the movie
$movieInfos = $this->get_infos($movieID);
$movie = $this->get_infos($movieID);
if(!$movie->isValid())
return 0;
//Return the ID of the owner of the movie
return isset($movieInfos["userID"]) ? $movieInfos["userID"] : 0;
return $movie->get_userID();;
}
/**
* Parse a video informations
* Convert database entry into movie object
*
* @param array $db_infos Informations about the movie from
* the database
* @return array Parsed informations about the video
* @param array $entry The database entry
* @return Movie Generated object
*/
private function parse_db_infos(array $db_infos) : array {
private function dbToMovie(array $entry) : Movie {
$infos = array();
$movie = new Movie();
//Get informations
$infos["id"] = $db_infos["ID"];
$infos["uri"] = $db_infos["URL"];
$infos["url"] = path_user_data($infos['uri']);
$infos["userID"] = $db_infos["ID_user"];
$infos["name"] = $db_infos["nom_video"];
$infos["file_type"] = $db_infos["file_type"];
$infos["size"] = $db_infos["size"];
return $infos;
$movie->set_id($entry["ID"]);
$movie->set_uri($entry["URL"]);
$movie->set_url(path_user_data($movie->get_uri()));
$movie->set_userID($entry["ID_user"]);
$movie->set_name($entry["nom_video"]);
$movie->set_file_type($entry["file_type"]);
$movie->set_size($entry["size"]);
return $movie;
}
}