import 'dart:convert'; import 'dart:io'; import 'package:http/http.dart' as http; import 'package:http/http.dart'; import '../../../model/accountData.dart'; import '../../../model/endpointData.dart'; import 'autocompleteResponse.dart'; class AutocompleteApi { Future find(String query) async { Map getParameters = { 'search': query, 'itemType': ' ', 'itemId': ' ', 'shareTypes[]': ['0'], 'limit': '10', }; Map headers = {}; headers.putIfAbsent('Accept', () => 'application/json'); headers.putIfAbsent('OCS-APIRequest', () => 'true'); Uri endpoint = Uri.https('${AccountData().buildHttpAuthString()}@${EndpointData().nextcloud().domain}', '${EndpointData().nextcloud().path}/ocs/v2.php/core/autocomplete/get', getParameters); Response response = await http.get(endpoint, headers: headers); if(response.statusCode != HttpStatus.ok) throw Exception('Api call failed with ${response.statusCode}: ${response.body}'); String result = response.body; return AutocompleteResponse.fromJson(jsonDecode(result)['ocs']); } }