<?php
class EvaluationSystem extends BaseSerevice
{
protected $db;
public $handlers;
public static $WORD_RATE_REPORT = "reportWord";
public static $EVALUATE_PREV_WORD = "nexWord";
public static $EVALUATE_NEXT_WORD = "prevWord";
function init(){
$this->db = new EvaluationSystemDatabase($this->getTG());
}
function getDB() : EvaluationSystemDatabase {
return $this->db;
}
function listen()
{
$callBackData = explode(":", $this->getTG()->callback_data);
$actionKey = $callBackData[0];
$callbackHandler = $this->getCallbackHandler($actionKey);
$callbackHandler->setParent($this);
$callbackHandler->setActionkey($actionKey );
if(isset($callBackData[1])){
$data = $callBackData[1];
$callbackHandler->setData($data);
}
$callbackHandler->execute();
}
public function getCallbackHandler($actionKey): CallBackhandler {
$answers[UserWantsEvaluateCallBackHandler::$key]= new UserWantsEvaluateCallBackHandler($this->getTG());
$answers[LikeWordCallbackHandler::$key]= new LikeWordCallbackHandler($this->getTG());
$answers[DislikeWordCallbackHandler::$key]= new DislikeWordCallbackHandler($this->getTG());
$answers[ReportCallbackHandler::$key]= new ReportCallbackHandler($this->getTG());
$answers[NextWordCallbackHandler::$key]= new NextWordCallbackHandler($this->getTG());
$answers[PrevWordCallbackHandler::$key]= new PrevWordCallbackHandler($this->getTG());
if(isset($answers[$actionKey])){
return $answers[$actionKey];
}
else {
return new NotFoundCallbackHandler($this->getTG());
}
}
}