online-faq/controller/FaqController.class.inc.php
Tobias Hopp f6d2e3a62a Fixing a little things
Took 6 hours 23 minutes
2020-10-03 19:53:03 +02:00

118 lines
3.1 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' );
if( empty( $question ) || strlen( $question ) > 500 || strlen( $question ) < 10 )
{
$view->setSuccess( false );
$view->setHeaderCode( 903 );
return $view->getResponse();
}
try {
$FAQModel->addQuestion( $room['id'], $question );
} 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();
}
}