Обучение. Рефакторинг
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
<?php
|
||||
|
||||
use DarksLight2\Training\Steps\ChatFirstStep;
|
||||
use DarksLight2\Training\Steps\MyUserFirstQuest;
|
||||
use DarksLight2\Training\TrainingException;
|
||||
use DarksLight2\Training\TrainingManager;
|
||||
|
||||
header('Content-type: application/json');
|
||||
@@ -16,10 +19,19 @@ if($input = file_get_contents("php://input")) {
|
||||
|
||||
if(!empty($user->info)) {
|
||||
|
||||
$training = TrainingManager::getInstance($user->info['id']);
|
||||
$training = TrainingManager::getInstance($user->info['id'], false);
|
||||
|
||||
try {
|
||||
$training->createDatabaseRecord();
|
||||
$training->register([
|
||||
new MyUserFirstQuest(),
|
||||
new ChatFirstStep()
|
||||
]);
|
||||
} catch (TrainingException $e) {
|
||||
}
|
||||
|
||||
if (!isset($data->token) || !password_verify(
|
||||
$training->getDatabaseRecords()->api_token . $data->time . $user->info['id'],
|
||||
$training->getDatabaseData()->api_token . $data->time . $user->info['id'],
|
||||
$data->token
|
||||
)) {
|
||||
http_response_code(401);
|
||||
@@ -32,16 +44,27 @@ if(!empty($user->info)) {
|
||||
http_response_code(400);
|
||||
die;
|
||||
case 'complete':
|
||||
if ($training->{$data->short_name}->isComplete) {
|
||||
if ($training->getDatabaseData()['data'][$training->getCurrentStepName()]['completed']) {
|
||||
http_response_code(400);
|
||||
die;
|
||||
}
|
||||
|
||||
$training->addPoint($data->short_name);
|
||||
if($training->getRegistered()[$data->short_name]->isInfo()) {
|
||||
|
||||
$training->addPoint($training->getCurrentStepName());
|
||||
}
|
||||
|
||||
$training->nextStep();
|
||||
|
||||
$training->store();
|
||||
|
||||
die(json_encode(['status' => 'ok']));
|
||||
|
||||
case 'go_back':
|
||||
$training->previousStep();
|
||||
$training->store();
|
||||
die(json_encode(['status' => 'ok', 'message' => 'Вы указал не верный ответ!']));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user