fitness-web/rest/controllers/DoorController.php
2023-05-11 18:20:56 +02:00

74 lines
2.4 KiB
PHP

<?php /** @noinspection PhpUnused */
namespace rest\controllers;
use common\manager\CutlerMovarDoorManager;
use common\manager\KeyDoorManager;
use rest\models\DoorMoveForm;
use Yii;
use yii\web\BadRequestHttpException;
class DoorController extends RestController
{
public function actionMove()
{
$formModel = new DoorMoveForm();
if ($formModel->load(Yii::$app->request->post(),"") ) {
if ( !$formModel->validate()){
$keys = array_keys($formModel->getFirstErrors());
throw new BadRequestHttpException("Invalid move request:". $formModel->getFirstErrors()[$keys[0]]);
}
$doorManager = new KeyDoorManager();
$doorManager->move($formModel->cardNumber,$formModel->device,$formModel->direction, $formModel->validateOnly, $formModel->createdAt, $formModel->date);
}
return $formModel;
}
public function actionMoveCutlerMovar()
{
$formModel = new DoorMoveForm();
if ($formModel->load(Yii::$app->request->post(),"") ) {
if ( !$formModel->validate()){
$keys = array_keys($formModel->getFirstErrors());
throw new BadRequestHttpException("Invalid move request:". $formModel->getFirstErrors()[$keys[0]]);
}
$doorManager = new CutlerMovarDoorManager();
$doorManager->move($formModel->cardNumber,$formModel->device,$formModel->direction, $formModel->validateOnly, $formModel->createdAt, $formModel->date);
}
return $formModel;
}
public function actionReset($cardNumber){
$doorManager = new KeyDoorManager();
$doorManager->resetLogs($cardNumber);
}
public function actionInfo($cardNumber){
$doorManager = new KeyDoorManager();
return $doorManager->getInfo($cardNumber);
}
public function actionCreateDoorLog(){
$doorManager = new KeyDoorManager();
return $doorManager->createLog();
}
public function actionPing(){
\Yii::$app->response->statusCode = 204;
echo "hello";
}
public function actionCheckoutKey($cardNumber, $keyNumber){
$doorManager = new KeyDoorManager();
$doorManager->checkoutKey($cardNumber,$keyNumber);
}
public function actionRevokeKey($cardNumber, $keyNumber){
$doorManager = new KeyDoorManager();
$doorManager->revokeKey($cardNumber,$keyNumber);
}
}