$action, 'record_id' => $recordId, 'file_name' => $fileName ]); $fileManager = new FileStorageManager(); switch ($action) { case 'prepare_edit': $result = $fileManager->prepareForEditing($recordId, $fileName); break; case 'sync_changes': $result = $fileManager->syncAfterEditing($recordId); break; case 'get_edit_status': $result = $fileManager->getEditStatus($recordId); break; default: throw new Exception('Unknown action: ' . $action); } echo json_encode($result, JSON_UNESCAPED_UNICODE); } catch (Exception $e) { CRM_Logger::error("Document editor API error", [ 'error' => $e->getMessage(), 'input' => $input ?? null ]); http_response_code(400); echo json_encode([ 'success' => false, 'error' => $e->getMessage() ], JSON_UNESCAPED_UNICODE); }