Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -102,3 +102,8 @@ venv.bak/

# mypy
.mypy_cache/

myvenv
db.sqlite3
/static
.DS_Store
7 changes: 7 additions & 0 deletions .htaccess
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Подключение модуля редиректа
Options +FollowSymlinks
RewriteEngine on

# Настройка редиректа
RewriteRule ^(.*)\.(.*)$ MainController.php?model=$1&fun=$2 [nc,qsa]
RewriteRule ^(.*)$ MainController.php?model=$1 [nc,qsa]
48 changes: 48 additions & 0 deletions MainController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?php
// ini_set('display_errors', 1);

require_once('support/Config.php');
require_once('support/SimpleRest.php');
require_once('support/DataBase.php');

$SimpleRest = new SimpleRest();
// Подключение к бд
$DB = new DataBase();
// $DB->database = 'ps_main';
$DB->database = 'qualification';
$con = $DB->getConnection();

$model = isset($_GET["model"]) ? ucfirst($_GET["model"]) : "";
$function = isset($_GET["fun"]) ? $_GET["fun"] : "";

// Формирование и чистка запроса
$request = $_REQUEST;
unset($request['model']);
unset($request['fun']);

// Проврка названия модели
if ($model == "")
{
$SimpleRest->setHttpHeadersAndPrint($_SERVER['HTTP_ACCEPT'], 404);
}
else
{
require_once('model/'.$model.'.php');
$obj = new $model();
$obj->conn = $con;

// Проверка названия метода
if (method_exists($model, $function))
{
// Вызов метода
$response = $obj->$function($request);
echo json_encode($response, JSON_PRETTY_PRINT);

// TODO: в завсисимости от ошибки менять заголовок
}
else
{
$SimpleRest->setHttpHeadersAndPrint($_SERVER['HTTP_ACCEPT'], 404);
}
}
?>
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
## ProДосуг api
Api предназначено для работы мобильного приложения с сервером ProДосуг.

## Требования
- Apache2
- PHP 7+
- MySQL 5.7+

## Настройка
Необходимо сохранить все файлы в нужную директорию и настроить файл `support/Config.php`.

## Запросы
Запрос имеет вид `class.metod?request`. Пример:
```markdown
https://example.com/test.fun
https://example.com/test.funReq?test=1234
```

### Ошибки
Ошибки выполнения функции хранятся в массиве по ключу `error`. Так же есть дополнительные ошибки, они отображаются при `define("DEBUG", true)` и данные ошибки хранятся в `error_debug`.
Расшифровка простых ошибок:

- 901 - не все входные данные имеются
- 900 - ответ от бд получен но записей нету
- 910 - ответ от бд получен или все записи были внесены
- 920 - ошибки при записи
- 911 - недостаточно сторонней информации
- 912 - операция не возможно так как была проведена ранее
Loading