import 'dart:io'; import 'package:http/http.dart' as http; import '../../../model/accountData.dart'; import '../../../model/endpointData.dart'; import 'fileSharingApiParams.dart'; class FileSharingApi { Future share(FileSharingApiParams query) async { var headers = {}; headers.putIfAbsent('Accept', () => 'application/json'); headers.putIfAbsent('OCS-APIRequest', () => 'true'); var endpoint = Uri.https('${AccountData().buildHttpAuthString()}@${EndpointData().nextcloud().domain}', '${EndpointData().nextcloud().path}/ocs/v2.php/apps/files_sharing/api/v1/shares', query.toJson().map((key, value) => MapEntry(key, value.toString()))); var response = await http.post(endpoint, headers: headers); if(response.statusCode != HttpStatus.ok) { throw Exception('Api call failed with ${response.statusCode}: ${response.body}'); } } }