<?php
/**
* Website Tutorial <http://github.com/kristovaher/Wave-Framework>
* Tutorial Movie Controller
*
* It is recommended to extend View classes from WWW_Factory in order to
* provide various useful functions and API access for the view.
*
* @package Factory
* @author Kristo Vaher <kristo@waher.net>
* @copyright Copyright (c) 2012, Kristo Vaher
* @license Unrestricted
* @tutorial /doc/pages/tutorial_website.htm
* @since 1.0.0
* @version 1.0.0
*/
class WWW_controller_movies extends WWW_Factory {
/**
* Data to be returned is stored in this variable
*/
public $returnData=array();
/**
* Adding movie data to database
*
* @param array $input input data array
* @input [title] movie title
* @input [year] movie year
* @input [success-url] URL to redirect to if adding was a success
* @input [failure-url] URL to redirect to if adding was a failure
* @return array
* @output [success] if adding was a success
* @output [error] if error was encountered
* @output [www-remporary-redirect] if client should be redirected
*/
public function add($input){
if(!isset($input['title']) || $input['title']==''){
$this->returnData['error']='Title is missing';
} else if(!isset($input['year']) || $input['year']==''){
$this->returnData['error']='Year is missing';
} else {
// This loads the model object from the class we created
$movie=$this->getModel('movie');
$movie->setTitle($input['title']);
$movie->setYear($input['year']);
if($movie->saveMovie()){
$this->returnData['success']='Movie saved!';
} else {
$this->returnData['error']='Could not save movie!';
}
}
// If an error is detected
if(isset($this->returnData['error']) && isset($input['failure-url'])){
// This is a callback keyword that sets the redirect header
$this->returnData['www-temporary-redirect']=$input['failure-url'];
} elseif(isset($input['success-url'])){
// This is a callback keyword that sets the redirect header
$this->returnData['www-temporary-redirect']=$input['success-url'];
}
return $this->returnData;
}
/**
* This returns data about a movie based on ID
*
* @param array $input input data array
* @input [id] movie ID
* @return array
* @output [title] movie title
* @output [year] movie year
* @output [id] movie ID
* @output [error] if ID was incorrect or movie was not found
*/
public function get($input){
if(!isset($input['id']) || $input['id']=='' || $input['id']==0){
$this->returnData['error']='ID is incorrect!';
} else {
$movie=$this->getModel('movie');
$movie=$movie->loadMovie($input['id']);
if($movie){
$this->returnData=$movie;
} else {
$this->returnData['error']='Cannot find movie with this ID!';
}
}
return $this->returnData;
}
/**
* This loads all listed movies from database
*
* @return array
* @output [title] movie title
* @output [year] movie year
* @output [id] movie ID
* @output [error] if ID was incorrect or movies were not found
*/
public function all(){
$movies=$this->getModel('movie');
$movies=$movies->loadAllMovies();
if($movies){
$this->returnData=$movies;
} else {
$this->returnData['error']='Cannot find movies!';
}
return $this->returnData;
}
/**
* This deletes a movie from database
*
* @param array $input input data array
* @input [id] movie ID
* @return array
* @output [success] if movie was deleted
* @output [error] if ID was incorrect or movie was not found
*/
public function delete($input){
if(!isset($input['id']) || $input['id']=='' || $input['id']==0){
$this->returnData['error']='ID is incorrect!';
} else {
$movie=$this->getModel('movie');
$movie=$movie->deleteMovie($input['id']);
if($movie){
$this->returnData['success']='Movie deleted!';
} else {
$this->returnData['error']='Cannot find movie with this ID!';
}
}
return $this->returnData;
}
}
?>
|