facultySearchAndDisplay function

Future<void> facultySearchAndDisplay(
  1. VtopClient client
)

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');
  }
}