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.

55 lines
1.6 KiB

part of '../nextcloud.dart';
2 years ago
// ignore: public_member_api_docs
class NextcloudClient extends Client {
2 years ago
// ignore: public_member_api_docs
NextcloudClient(
super.baseURL, {
this.loginName,
2 years ago
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: loginName != null && password != null
? HttpBasicAuthentication(
username: loginName,
password: password,
)
: null,
);
/// Identifier used for authentication. This can be the username or email or something else.
final String? loginName;
/// Username of the user on the server, it needs to be set for using WebDAV.
/// It can be obtained via the provisioning_api.
2 years ago
final String? username;
WebDavClient? _webdav;
2 years ago
/// Client for WebDAV. Username needs to be set in order to use it
WebDavClient get webdav {
if (_webdav != null) {
return _webdav!;
2 years ago
}
if (username == null) {
throw Exception('The WebDAV client is only available when a username is set');
}
return _webdav = WebDavClient(
this,
'/remote.php/dav/files/$username',
);
2 years ago
}
}