33 lines
1.1 KiB
Dart
33 lines
1.1 KiB
Dart
import 'dart:convert';
|
|
import 'dart:io';
|
|
|
|
import 'package:http/http.dart' as http;
|
|
import 'package:http/http.dart';
|
|
|
|
import '../../../model/accountData.dart';
|
|
import '../../../model/timetable/endpointData.dart';
|
|
import 'autocompleteResponse.dart';
|
|
|
|
class AutocompleteApi {
|
|
Future<AutocompleteResponse> find(String query) async {
|
|
Map<String, dynamic> getParameters = {
|
|
"search": query,
|
|
"itemType": " ",
|
|
"itemId": " ",
|
|
"shareTypes[]": ["0"],
|
|
"limit": "10",
|
|
};
|
|
|
|
Map<String, String> 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']);
|
|
}
|
|
|
|
} |