A framework for building convergent cross-platform Nextcloud clients using Flutter.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

49 lines
1.5 KiB

part of '../nextcloud.dart';
// ignore: public_member_api_docs
class NextcloudClient extends Client {
// ignore: public_member_api_docs
NextcloudClient(
super.baseURL, {
this.username,
final String? password,
final String? language,
final AppType appType = AppType.unknown,
final String? userAgentOverride,
super.cookieJar,
}) : super(
baseHeaders: (<String, String?>{
'OCS-APIRequest': 'true',
'Accept': 'application/json',
'Accept-Language': language,
}..removeWhere((final _, final value) => value == null))
.cast<String, String>(),
userAgent: userAgentOverride ?? appType.userAgent,
authentication: username != null && password != null
? HttpBasicAuthentication(
username: username,
password: password,
)
: null,
);
/// Username used for all operations. Necessary for accessing WebDAV resources
final String? username;
WebDavClient? _webdav;
/// Client for WebDAV. Will be null if no username is set for the client
WebDavClient get webdav {
if (_webdav != null) {
return _webdav!;
}
if (username == null) {
throw Exception('The WebDAV client is only available when a username is set');
}
return _webdav = WebDavClient(
this,
'/remote.php/dav/files/${(super.authentication! as HttpBasicAuthentication).username}',
);
}
}