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
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}', |
|
); |
|
} |
|
}
|
|
|