createConfiguration method
Create configuration
Implementation
Future<Map<String, dynamic>> createConfiguration(
Map<String, dynamic> params,
) async {
try {
final className = params['className'] as String;
final type = params['type'] as String? ?? 'generic';
final customPath = params['filePath'] as String?;
// Generate configuration code based on type
String code;
switch (type) {
case 'openapi':
code = ConfigurationTemplate.generateOpenApiConfiguration();
break;
case 'database':
code = ConfigurationTemplate.generateDatabaseConfiguration();
break;
case 'security':
code = ConfigurationTemplate.generateSecurityConfiguration();
break;
default:
code = ConfigurationTemplate.generateConfiguration(
className: className,
);
}
// Determine file path
final fileName = '${_toSnakeCase(className)}.dart';
final filePath =
customPath ?? p.join(projectRoot, 'lib', 'config', fileName);
// Ensure directory exists
await FileUtils.ensureDirectory(p.dirname(filePath));
// Check if file exists
if (await FileUtils.fileExists(filePath)) {
return {
'success': false,
'error': 'File already exists: $filePath',
};
}
// Write file
await FileUtils.writeFile(filePath, code);
return {
'success': true,
'message': 'Configuration created successfully',
'filePath': FileUtils.getRelativePath(projectRoot, filePath),
'absolutePath': filePath,
};
} catch (e) {
return {
'success': false,
'error': e.toString(),
};
}
}