import 'package:nextcloud/nextcloud.dart'; import '../../../model/account_data.dart'; import '../../../model/endpoint_data.dart'; import '../../api_request.dart'; import '../../api_response.dart'; abstract class WebdavApi extends ApiRequest { T genericParams; WebdavApi(this.genericParams) { establishWebdavConnection(); } Future run(); static Future webdav = establishWebdavConnection(); static Future establishWebdavConnection() async => NextcloudClient( Uri.parse('https://${EndpointData().nextcloud().full()}'), password: AccountData().getPassword(), loginName: AccountData().getUsername(), ).webdav; /// Builds the WebDAV download URL without embedded credentials. Callers must /// authenticate via the [AccountData.authHeaders] header instead. static String buildWebdavUrl() => 'https://${EndpointData().nextcloud().full()}/remote.php/dav/files/${AccountData().getUsername()}/'; }