21 lines
767 B
Dart
21 lines
767 B
Dart
import '../../marianumconnect_query.dart';
|
|
import 'user_search_response.dart';
|
|
|
|
/// Searches active users (students, teachers, staff) via the MarianumConnect
|
|
/// mobile API. Returns each match's Nextcloud username plus role, so the Talk
|
|
/// search can start a direct chat and label results without hitting Nextcloud.
|
|
class UserSearch extends MarianumConnectQuery {
|
|
UserSearch({super.dio});
|
|
|
|
Future<UserSearchResponse> run(String query) => guard(() async {
|
|
final response = await dio.get<List<dynamic>>(
|
|
endpoint('users/search'),
|
|
queryParameters: {'q': query},
|
|
);
|
|
final list = response.data!
|
|
.map((e) => McUserSearchResult.fromJson(e as Map<String, dynamic>))
|
|
.toList();
|
|
return UserSearchResponse(result: list);
|
|
});
|
|
}
|