refactor: remove unused old dashbot features and related files

This commit is contained in:
Udhay-Adithya
2025-08-31 12:16:43 +05:30
parent b9cc42b019
commit 15e3856242
15 changed files with 0 additions and 1306 deletions

View File

@@ -1,63 +0,0 @@
import 'dart:convert';
import '../services/services.dart';
import '../../models/models.dart';
class DebugFeature {
final DashBotService _service;
DebugFeature(this._service);
Future<String> debugApi({
required RequestModel? requestModel,
required dynamic responseModel,
}) async {
if (requestModel == null || responseModel == null) {
return "No recent API requests found.";
}
final method = requestModel.httpRequestModel?.method
.toString()
.split('.')
.last
.toUpperCase() ??
"GET";
final endpoint = requestModel.httpRequestModel?.url ?? "Unknown Endpoint";
final headers = requestModel.httpRequestModel?.enabledHeadersMap ?? {};
final parameters = requestModel.httpRequestModel?.enabledParamsMap ?? {};
final body = requestModel.httpRequestModel?.body;
final rawResponse = responseModel.body;
final responseBody =
rawResponse is String ? rawResponse : jsonEncode(rawResponse);
final statusCode = responseModel.statusCode ?? 0;
final prompt = """
URGENT API DEBUG ANALYSIS
**Request Overview:**
- Endpoint: $endpoint
- Method: $method
- Status Code: $statusCode
**Debugging Instructions:**
Provide a PRECISE, TEXT-ONLY explanation that:
1. Identifies the EXACT problem
2. Explains WHY the request failed
3. Describes SPECIFIC steps to resolve the issue
4. NO CODE SNIPPETS ALLOWED
**Request Details:**
- Headers: ${headers.isNotEmpty ? jsonEncode(headers) : "No headers"}
- Parameters: ${parameters.isNotEmpty ? jsonEncode(parameters) : "No parameters"}
- Request Body: ${body ?? "Empty body"}
**Response Context:**
```
$responseBody
```
Provide a CLEAR, ACTIONABLE solution in the SIMPLEST possible language.
""";
return _service.generateResponse(prompt);
}
}

View File

@@ -1,66 +0,0 @@
import 'dart:convert';
import '../services/services.dart';
import '../../models/models.dart';
class DocumentationFeature {
final DashBotService _service;
DocumentationFeature(this._service);
Future<String> generateApiDocumentation({
required RequestModel? requestModel,
required dynamic responseModel,
}) async {
if (requestModel == null || responseModel == null) {
return "No recent API requests found.";
}
final method = requestModel.httpRequestModel?.method
.toString()
.split('.')
.last
.toUpperCase() ??
"GET";
final endpoint = requestModel.httpRequestModel?.url ?? "Unknown Endpoint";
final headers = requestModel.httpRequestModel?.enabledHeadersMap ?? {};
final parameters = requestModel.httpRequestModel?.enabledParamsMap ?? {};
final body = requestModel.httpRequestModel?.body;
final rawResponse = responseModel.body;
final responseBody =
rawResponse is String ? rawResponse : jsonEncode(rawResponse);
final statusCode = responseModel.statusCode ?? 0;
final prompt = """
API DOCUMENTATION GENERATION
**API Details:**
- Endpoint: $endpoint
- Method: $method
- Status Code: $statusCode
**Request Components:**
- Headers: ${headers.isNotEmpty ? jsonEncode(headers) : "None"}
- Query Parameters: ${parameters.isNotEmpty ? jsonEncode(parameters) : "None"}
- Request Body: ${body != null && body.isNotEmpty ? body : "None"}
**Response Example:**
```
$responseBody
```
**Documentation Instructions:**
Create comprehensive API documentation that includes:
1. **Overview**: A clear, concise description of what this API endpoint does
2. **Authentication**: Required authentication method based on headers
3. **Request Details**: All required and optional parameters with descriptions
4. **Response Structure**: Breakdown of response fields and their meanings
5. **Error Handling**: Possible error codes and troubleshooting
6. **Example Usage**: A complete code example showing how to call this API
Format in clean markdown with proper sections and code blocks where appropriate.
""";
return _service.generateResponse(prompt);
}
}

View File

@@ -1,67 +0,0 @@
import '../services/services.dart';
import '../../models/models.dart';
class ExplainFeature {
final DashBotService _service;
ExplainFeature(this._service);
Future<String> explainLatestApi({
required RequestModel? requestModel,
required dynamic responseModel,
}) async {
if (requestModel == null || responseModel == null) {
return "No recent API requests found.";
}
if (requestModel.httpRequestModel?.url == null) {
return "Error: Invalid API request (missing endpoint).";
}
final method =
requestModel.httpRequestModel?.method.name.toUpperCase() ?? "GET";
final url = requestModel.httpRequestModel!.url;
final headers = requestModel.httpRequestModel?.enabledHeadersMap ?? {};
final parameters = requestModel.httpRequestModel?.enabledParamsMap ?? {};
final body = requestModel.httpRequestModel?.body ?? '';
final responseBody = responseModel.body;
final statusCode = responseModel.statusCode;
final prompt = '''
FOCUSED API INTERACTION BREAKDOWN
**Essential Request Details:**
- Endpoint Purpose: What is this API endpoint designed to do?
- Interaction Type: Describe the core purpose of this specific request
**Request Details:**
- Endpoint: $url
- HTTP Method: $method
- Request Headers: ${headers.isEmpty ? "None" : headers}
- URL Parameters: ${parameters.isEmpty ? "None" : parameters}
- Request Body: ${body.isEmpty ? "None" : body}
**Response Details**
- Status Code: $statusCode
- Content: $responseBody
**Response CORE Insights:**
- Status: Success or Failure?
- Key Data Extracted: What CRITICAL information does the response contain?
**Precise Analysis Requirements:**
1. Explain the API's PRIMARY function in ONE clear sentence
2. Identify the MOST IMPORTANT piece of information returned
3. Describe the PRACTICAL significance of this API call
AVOID:
- Technical jargon
- Unnecessary details
- Verbose explanations
Deliver a CRYSTAL CLEAR, CONCISE explanation that anyone can understand.
''';
return _service.generateResponse(prompt);
}
}

View File

@@ -1,5 +0,0 @@
export 'debug.dart';
export 'documentation.dart';
export 'explain.dart';
export 'general_query.dart';
export 'test_generator.dart';

View File

@@ -1,54 +0,0 @@
import 'package:ollama_dart/ollama_dart.dart';
import '../../models/models.dart';
import '../consts.dart';
class GeneralQueryFeature {
final OllamaClient _client;
GeneralQueryFeature(this._client);
Future<String> generateResponse(String prompt,
{RequestModel? requestModel, dynamic responseModel}) async {
String enhancedPrompt = prompt;
if (requestModel != null && responseModel != null) {
final method = requestModel.httpRequestModel?.method
.toString()
.split('.')
.last
.toUpperCase() ??
"GET";
final endpoint = requestModel.httpRequestModel?.url ?? "Unknown Endpoint";
final statusCode = responseModel.statusCode ?? 0;
enhancedPrompt = '''
CONTEXT-AWARE RESPONSE
**User Question:**
$prompt
**Related API Context:**
- Endpoint: $endpoint
- Method: $method
- Status Code: $statusCode
**Instructions:**
1. Directly address the user's specific question
2. Provide relevant, concise information
3. Reference the API context when helpful
4. Focus on practical, actionable insights
5. Avoid generic explanations or documentation
Respond in a helpful, direct manner that specifically answers what was asked.
''';
}
final response = await _client.generateCompletion(
request: GenerateCompletionRequest(
model: kModel,
prompt: enhancedPrompt,
),
);
return response.response.toString();
}
}

View File

@@ -1,94 +0,0 @@
import 'dart:convert';
import '../services/services.dart';
import '../../models/models.dart';
class TestGeneratorFeature {
final DashBotService _service;
TestGeneratorFeature(this._service);
Future<String> generateApiTests({
required RequestModel? requestModel,
required dynamic responseModel,
}) async {
if (requestModel == null || responseModel == null) {
return "No recent API requests found.";
}
final method = requestModel.httpRequestModel?.method
.toString()
.split('.')
.last
.toUpperCase() ??
"GET";
final endpoint = requestModel.httpRequestModel?.url ?? "Unknown Endpoint";
final rawResponse = responseModel.body;
final responseBody =
rawResponse is String ? rawResponse : jsonEncode(rawResponse);
final statusCode = responseModel.statusCode ?? 0;
Uri uri = Uri.parse(endpoint);
final baseUrl = "${uri.scheme}://${uri.host}";
final path = uri.path;
final parameterAnalysis = _analyzeParameters(uri.queryParameters);
final prompt = """
EXECUTABLE API TEST CASES GENERATOR
**API Analysis:**
- Base URL: $baseUrl
- Endpoint: $path
- Method: $method
- Current Parameters: ${uri.queryParameters}
- Current Response: $responseBody (Status: $statusCode)
- Parameter Types: $parameterAnalysis
**Test Generation Task:**
Generate practical, ready-to-use test cases for this API in cURL format. Each test should be executable immediately.
Include these test categories:
1. **Valid Cases**: Different valid parameter values (use real-world examples like other country codes if this is a country API)
2. **Invalid Parameter Tests**: Missing parameters, empty values, incorrect formats
3. **Edge Cases**: Special characters, long values, unexpected inputs
4. **Validation Tests**: Test input validation and error handling
For each test case:
1. Provide a brief description of what the test verifies
2. Include a complete, executable cURL command
3. Show the expected outcome (status code and sample response)
4. Organize tests in a way that's easy to copy and run
Focus on creating realistic test values based on the API context (e.g., for a country flag API, use real country codes, invalid codes, etc.)
""";
final testCases = await _service.generateResponse(prompt);
return "TEST_CASES_HIDDEN\n$testCases";
}
String _analyzeParameters(Map<String, String> parameters) {
if (parameters.isEmpty) {
return "No parameters detected";
}
Map<String, String> analysis = {};
parameters.forEach((key, value) {
if (RegExp(r'^[A-Z]{3}$').hasMatch(value)) {
analysis[key] =
"Appears to be a 3-letter country code (ISO 3166-1 alpha-3)";
} else if (RegExp(r'^[A-Z]{2}$').hasMatch(value)) {
analysis[key] =
"Appears to be a 2-letter country code (ISO 3166-1 alpha-2)";
} else if (RegExp(r'^\d+$').hasMatch(value)) {
analysis[key] = "Numeric value";
} else if (RegExp(r'^[a-zA-Z]+$').hasMatch(value)) {
analysis[key] = "Alphabetic string";
} else {
analysis[key] = "Unknown format: $value";
}
});
return jsonEncode(analysis);
}
}