chore: snapshot current working tree changes

Save all currently accumulated repository changes as a backup snapshot for Gitea so no local work is lost.
This commit is contained in:
Fedor
2026-03-26 14:19:01 +03:00
parent aec27abeb0
commit 01c4fe80b5
1557 changed files with 2090933 additions and 20934 deletions

View File

@@ -8,6 +8,8 @@
require_once("config.php");
require_once("include/Webservices/Utils.php");
require_once("include/Webservices/Create.php");
require_once("include/Webservices/Update.php");
require_once("include/Webservices/UpsertProject.php");
require_once("includes/Loader.php");
vimport ('includes.runtime.Globals');
vimport ('includes.runtime.BaseModel');
@@ -40,12 +42,99 @@ if (strpos($contentType, 'application/json') !== false) {
$logstring .= date("Y-m-d H:i:s").' Parsed FORM: '.json_encode($input, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT).PHP_EOL;
}
// ✅ Парсим project_json, если он передан (для n8n workflow)
if (isset($input['project_json']) && !empty($input['project_json'])) {
$projectJson = $input['project_json'];
// project_json может быть строкой JSON или уже объектом
if (is_string($projectJson)) {
$projectData = json_decode($projectJson, true);
if ($projectData !== null) {
$logstring .= date("Y-m-d H:i:s").' Parsed project_json: '.json_encode($projectData, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT).PHP_EOL;
// Извлекаем contactid из project_json (может быть contact_id или contactid)
if (empty($input['contactid']) && !empty($projectData['contactid'])) {
$input['contactid'] = $projectData['contactid'];
} elseif (empty($input['contactid']) && !empty($projectData['contact_id'])) {
$input['contactid'] = $projectData['contact_id'];
}
// Извлекаем offenderid из project_json или из result.accounts[0].account_id
if (empty($input['offenderid'])) {
// Сначала проверяем, есть ли offenderid напрямую
if (!empty($projectData['offenderid'])) {
$input['offenderid'] = $projectData['offenderid'];
} else {
// Пытаемся извлечь из result.accounts[0].account_id
if (!empty($projectData['result'])) {
$resultData = $projectData['result'];
// result может быть строкой JSON или объектом
if (is_string($resultData)) {
$resultData = json_decode($resultData, true);
}
if ($resultData !== null && isset($resultData['accounts']) && is_array($resultData['accounts']) && count($resultData['accounts']) > 0) {
if (!empty($resultData['accounts'][0]['account_id'])) {
$input['offenderid'] = $resultData['accounts'][0]['account_id'];
$logstring .= date("Y-m-d H:i:s").' Extracted offenderid from result.accounts[0].account_id: '.$input['offenderid'].PHP_EOL;
}
}
}
}
}
// Копируем projectdata из project_json, если не передано напрямую
if (empty($input['projectdata']) && !empty($projectData['projectdata'])) {
$input['projectdata'] = $projectData['projectdata'];
}
// Копируем другие поля из project_json
if (empty($input['project_id']) && !empty($projectData['project_id'])) {
$input['project_id'] = $projectData['project_id'];
}
if (empty($input['claim_id']) && !empty($projectData['claim_id'])) {
$input['claim_id'] = $projectData['claim_id'];
}
} else {
$logstring .= date("Y-m-d H:i:s").' Failed to parse project_json: '.json_last_error_msg().PHP_EOL;
}
}
}
$logstring .= date("Y-m-d H:i:s").' Final input after project_json parsing: '.json_encode($input, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT).PHP_EOL;
$logstring .= date("Y-m-d H:i:s").' ===== CreateProjectAdvanced REQUEST END ====='.PHP_EOL;
file_put_contents('logs/CreateProjectAdvanced.log', $logstring, FILE_APPEND);
// ✅ Если операция UpsertProject - используем специальный метод
// ВАЖНО: Старая логика (без operation='UpsertProject') продолжает работать как раньше
$operation = $input['operation'] ?? '';
if ($operation === 'UpsertProject' && !empty($input['project_json'])) {
try {
// Инициализируем пользователя
$seed_user = new Users();
$current_user = $seed_user->retrieveCurrentUserInfoFromFile(1);
// Вызываем vtws_upsertproject
$projectJson = is_string($input['project_json']) ? $input['project_json'] : json_encode($input['project_json']);
$result = vtws_upsertproject($projectJson, $current_user);
// Возвращаем результат
echo $result;
exit;
} catch (Exception $e) {
$logstring = date('Y-m-d H:i:s').' UpsertProject error: '.$e->getMessage().PHP_EOL;
file_put_contents('logs/CreateProjectAdvanced.log', $logstring, FILE_APPEND);
http_response_code(500);
echo json_encode(['success' => false, 'error' => $e->getMessage()]);
exit;
}
}
// Если operation !== 'UpsertProject' или project_json пустой - продолжаем старую логику ниже
// Валидация обязательных полей
if (empty($input['contactid']) || empty($input['offenderid'])) {
$logstring = date("Y-m-d H:i:s").' Missing required fields: contactid or offenderid'.PHP_EOL;
$logstring .= date("Y-m-d H:i:s").' contactid: '.(isset($input['contactid']) ? $input['contactid'] : 'NOT SET').PHP_EOL;
$logstring .= date("Y-m-d H:i:s").' offenderid: '.(isset($input['offenderid']) ? $input['offenderid'] : 'NOT SET').PHP_EOL;
file_put_contents('logs/CreateProjectAdvanced.log', $logstring, FILE_APPEND);
http_response_code(400);