online-faq/controller/FaqController.class.inc.php
2020-10-04 15:31:53 +02:00

119 lines
3.3 KiB
PHP

<?php
class FaqController extends DefaultController
{
public function indexAction()
{
$view = new Template( 'faq' );
$FAQModel = new FaqModel();
$room = $FAQModel->getRoom();
$view->set_placeholder( 'room_name', $room['name'] );
$view->set_placeholder( 'room_code', $room['code'] );
$view->set_placeholder( 'share_url', SHARE_URL_PREFIX . $room['code'] );
$view->set_placeholder( 'wasted_time', WASTED_TIME );
return $view->getHtml();
}
public function getQuestionsAction()
{
$view = new Apitemplate();
$FAQModel = new FaqModel();
$room = $FAQModel->getRoom();
$questions = $FAQModel->getQuestions( $room['id'] );
$view->setResponse( array( 'questions' => $questions ) );
return $view->getResponse();
}
public function getQuestionAction()
{
$view = new Apitemplate();
$FAQModel = new FaqModel();
$room = $FAQModel->getRoom();
$question_id = Api::getVar( 'question_id' );
if( empty( $question_id ) || !isset( $question_id ) )
{
$view->setSuccess( false );
$view->setHeaderCode( 903 );
return $view->getResponse();
}
if( ( $question = $FAQModel->getQuestion( $question_id ) ) === false )
{
$view->setSuccess( false );
$view->setHeaderCode( 906 );
return $view->getResponse();
}
$view->setResponse( $question );
$view->setSuccess( true );
return $view->getResponse();
}
public function addQuestionAction()
{
$view = new Apitemplate();
$FAQModel = new FaqModel();
$room = $FAQModel->getRoom();
$question = Api::getVar( 'question' );
$nickname = APi::getVar( 'nickname' );
if( empty( $question ) || empty( $nickname) || strlen( $question ) > 500 || strlen( $question ) < 10 || strlen( $nickname) < 3 || strlen( $nickname ) > 20 )
{
$view->setSuccess( false );
$view->setHeaderCode( 903 );
return $view->getResponse();
}
try {
$FAQModel->addQuestion( $room['id'], $question, $nickname );
} catch( Exception $e )
{
$view->setSuccess( false );
$view->setHeaderCode( 901 );
$view->setResponse( array( $e->getMessage() ));
return $view->getResponse();
}
$view->setSuccess( true );
return $view->getResponse();
}
public function addAnswerAction()
{
$view = new Apitemplate();
$FAQModel = new FaqModel();
$room = $FAQModel->getRoom();
$question_id = Api::getVar( 'question_id' );
$answer = Api::getVar( 'answer' );
if( !$FAQModel->checkUserIsRoomOwner( $room ) )
{
$view->setSuccess( false );
$view->setHeaderCode( 905 );
return $view->getResponse();
}
try {
$FAQModel->addAnswer( $question_id, $answer );
} catch( Exception $e )
{
$view->setSuccess( false );
$view->setHeaderCode( 902 );
return $view->getResponse();
}
$view->setSuccess( true );
return $view->getResponse();
}
}