109
Приложение 3.
Листинг программных модулей
Исходный текст модуля интерфейса API
<?php
namespace app\modules\api2\controllers;
class ApiController extends ActiveController
{
public $modelClass = 'app\modules\landings\models\Claims';
public function actionPostClaim(): array
{
$response = [];
if (!empty($post = Yii::$app->request->post())) {
$post = $this->imitateFormPost();
if ($this->formManager->object->load($post)) {
if ($this->formManager->object->validate()) {
if ($this->formManager->object->validateOnly()) {
$response = ['validated' => 1];
} else {
if ($this->formManager->object->save(false)) {
if ($this->formManager->object->isUnhandledDuplicate()) {
$this->errorManager->setError(ErrorManager::STATE_API_CLAIM_IS_DUPLICATE);
}
//$response = $this->formManager->getApiResponse();
$response = $this->formManager->object->getApiResponse();
$this->getLdgPixelParams($this->formManager->object->id);
} else {
$this->errorManager->setError(ErrorManager::STATE_API_CLAIM_NOT_SAVED);
}
}
} else {
$this->errorManager->setError(ErrorManager::STATE_API_VALIDATION_ERROR, $this-
>formManager->object->getErrors());
}
} else {
$this->errorManager->setError(ErrorManager::STATE_API_FORM_WAS_NOT_LOADED);
}
} else {
$this->errorManager->setError(ErrorManager::STATE_API_EMPTY_POST);
}
return $this->getAnswer($response);
}
public function actionPostFile(): array
{
$response['errors'] = 'empty';
if (Yii::$app->request->isPost) {
if (isset(Yii::$app->request->bodyParams['hash']) &&
isset(Yii::$app->request->bodyParams['file_name']) &&