import 'package:nextcloud/nextcloud.dart';

import '../../../model/accountData.dart';
import '../../apiRequest.dart';
import '../../apiResponse.dart';

abstract class WebdavApi<T> extends ApiRequest {
  T genericParams;

  WebdavApi(this.genericParams) {
    establishWebdavConnection();
  }

  Future<ApiResponse> run();

  static Future<WebDavClient> webdav = establishWebdavConnection();
  static Future<String> webdavConnectString = buildWebdavConnectString();

  static Future<WebDavClient> establishWebdavConnection() async {
    return NextcloudClient("https://cloud.marianum-fulda.de/", username: AccountData().getUsername(), password: AccountData().getPassword(), loginName: AccountData().getUsername()).webdav;
  }

  static Future<String> buildWebdavConnectString() async {
    return "https://${AccountData().buildHttpAuthString()}@cloud.marianum-fulda.de/remote.php/dav/files/${AccountData().getUsername()}/";
  }
}