online-faq/controller/DefaultController.class.inc.php
2020-10-05 21:59:42 +02:00

129 lines
3.5 KiB
PHP
Executable File

<?php
/**
* Class DefaultController
*/
class DefaultController
{
/**
* The default index test controller
*
* @return string HTML Code
* @throws Exception
*/
public function indexAction()
{
$view = new Template( 'start' );
$Request = new Request();
$room_code = mb_strtoupper( $Request->getVar( 'code', null, 'GET' ) );
$secret = $Request->getVar( 'secret', null, 'GET' );
if( !empty( $room_code ) )
{
if( !empty( $secret ) )
{
header( 'Location: ?a=joinFAQ&code=' . $room_code . '&secret=' . $secret );
exit();
}
// Redirect to Join
header( 'Location: ?a=joinFAQ&code=' . $room_code );
exit();
}
$view->set_placeholder( 'max_len', CODE_LENGTH );
$view->set_placeholder( 'wasted_time', WASTED_TIME );
$reason = $Request->getVar( 'rsn', false, 'GET' );
if( $reason !== false )
{
$view->set_placeholder( 'error', $reason );
}
// Return the HTML Code to the index.php
return $view->getHtml();
} # function indexAction()
/**
* @return string
* @throws Exception
*/
public function joinFAQAction()
{
$view = new Template( 'start' );
$DefaultModel = new DefaultModel();
$Request = new Request();
$view->set_placeholder( 'max_len', CODE_LENGTH );
$view->set_placeholder( 'wasted_time', WASTED_TIME );
$room_code = mb_strtoupper( $Request->getVar( 'code', null, 'POST' ) );
$secret = $Request->getVar( 'secret', null, 'GET' );
if( empty( $room_code ) )
{
$room_code = mb_strtoupper( $Request->getVar( 'code', null, 'GET' ) );
}
if( empty( $room_code ) && !isset( $room_code ) )
{
$view->set_placeholder( 'error', 'Room-Code is invalid!' );
return $view->getHtml();
}
if( ( $room_id = $DefaultModel->checkCode( $room_code ) ) === false )
{
$view->set_placeholder( 'error', 'Room-Code is invalid!' );
return $view->getHtml();
}
if( !empty( $secret ) )
{
$DefaultModel->setSecret( $room_id, $secret );
}
if( !$DefaultModel->joinRoom( $room_id ) )
{
$view->set_placeholder( 'error', 'An error occurred, please try again later!' );
return $view->getHtml();
}
return $view->getHtml();
}
/**
* @return string
* @throws Exception
*/
public function createFAQAction()
{
$view = new Template( 'start' );
$DefaultModel = new DefaultModel();
$Request = new Request();
$view->set_placeholder( 'max_len', CODE_LENGTH );
$view->set_placeholder( 'wasted_time', WASTED_TIME );
$room_name = $Request->getVar( 'room-name', '', 'POST' );
if( empty( $room_name ) || strlen( $room_name) > 15 || strlen( $room_name ) < 3 )
{
$view->set_placeholder( 'error', 'The Room-Name must contain 3-15 characters!' );
return $view->getHtml();
}
if( ( $id = $DefaultModel->createRoom( $room_name ) ) === false )
{
$view->set_placeholder( 'error', 'An error occurred, please try again later!' );
return $view->getHtml();
}
$DefaultModel->joinRoom( $id );
return $view->getHtml();
}
} # class