$statusCode ]; if (isset($data['error'])) { $response['error'] = $data['error']; } else if (isset($data['url'])) { $response['url'] = $data['url']; } echo json_encode($response); exit; } // Basic URL validation // Validação básica da URL if (!$url || !filter_var($url, FILTER_VALIDATE_URL)) { $errorMessage = Language::getMessage('INVALID_URL'); sendResponse([ 'error' => [ 'code' => 'INVALID_URL', 'message' => $errorMessage['message'] ] ], 400); } try { // Instantiate URL analyzer // Instancia o analisador de URLs $analyzer = new URLAnalyzer(); // Try to analyze the provided URL // Tenta analisar a URL fornecida $analyzer->analyze($url); // If analysis is successful, return the processed URL // Se a análise for bem-sucedida, retorna a URL processada sendResponse([ 'url' => SITE_URL . '/p/' . $url ], 200); } catch (Exception $e) { // Error handling with mapping to appropriate HTTP codes // Tratamento de erros com mapeamento para códigos HTTP apropriados $message = $e->getMessage(); $statusCode = 400; $errorCode = 'GENERIC_ERROR'; $errorMessage = Language::getMessage('GENERIC_ERROR'); // Try to match the error message with known error types // Tenta corresponder a mensagem de erro com tipos de erro conhecidos $errorTypes = ['BLOCKED_DOMAIN', 'DNS_FAILURE', 'HTTP_ERROR', 'CONNECTION_ERROR', 'CONTENT_ERROR']; foreach ($errorTypes as $type) { $typeMessage = Language::getMessage($type); if (strpos($message, $typeMessage['message']) !== false) { $statusCode = ($typeMessage['type'] === 'error') ? 400 : 503; $errorCode = $type; $errorMessage = $typeMessage; break; } } // Add error header for better client-side handling // Adiciona header de erro para melhor tratamento no cliente header('X-Error-Message: ' . $message); sendResponse([ 'error' => [ 'code' => $errorCode, 'message' => $errorMessage['message'] ] ], $statusCode); } } else { // Return 404 error for endpoints not found // Retorna erro 404 para endpoints não encontrados $errorMessage = Language::getMessage('NOT_FOUND'); sendResponse([ 'error' => [ 'code' => 'NOT_FOUND', 'message' => $errorMessage['message'] ] ], 404); }