facultySearchAndDisplay function
Implementation
Future<void> facultySearchAndDisplay(VtopClient client) async {
try {
stdout.write('Enter faculty search term: ');
final searchTerm = stdin.readLineSync() ?? '';
if (searchTerm.isEmpty) {
print('Search term cannot be empty.\n');
return;
}
print('Searching for faculty with term: $searchTerm...');
final facultyResult = await fetchFacultySearch(
client: client,
searchTerm: searchTerm,
);
print('✓ Faculty found:');
print('\n=== FACULTY SEARCH RESULT ===');
print('Name: ${facultyResult.facultyName}');
print('Designation: ${facultyResult.designation}');
print('School/Centre: ${facultyResult.schoolOrCentre}');
print('Employee ID: ${facultyResult.empId}');
print(
'\nWould you like to get detailed information for this faculty? (y/n)',
);
final getDetails = stdin.readLineSync()?.toLowerCase() ?? 'n';
if (getDetails == 'y' || getDetails == 'yes') {
print(
'Fetching detailed information for ${facultyResult.facultyName}...',
);
final facultyDetails = await fetchFacultyData(
client: client,
empId: facultyResult.empId,
);
print('\n=== FACULTY DETAILS JSON ===');
print(
const JsonEncoder.withIndent(' ').convert(facultyDetails.toJson()),
);
}
print('');
} catch (e) {
print('Error with faculty search: $e\n');
}
}