3
3
import 'dart:async' ;
4
4
import 'dart:typed_data' ;
5
5
6
+ import 'package:dynamite_runtime/http_client.dart' ;
6
7
import 'package:http/http.dart' as http;
7
- import 'package:nextcloud/nextcloud.dart' ;
8
8
import 'package:nextcloud/src/api/webdav/webdav.dart' ;
9
9
import 'package:nextcloud/utils.dart' ;
10
10
import 'package:universal_io/io.dart' show File, FileStat;
@@ -22,22 +22,28 @@ final checksumPattern = RegExp(
22
22
);
23
23
24
24
/// WebDavClient class
25
- class WebDavClient {
26
- // ignore: public_member_api_docs
27
- WebDavClient (this .rootClient)
28
- : csrfClient = WebDavCSRFClient (
29
- rootClient.baseURL,
30
- httpClient: rootClient,
25
+ class WebDavClient extends DynamiteClient {
26
+ /// Creates a new `WebDavClient` .
27
+ WebDavClient (
28
+ super .baseURL, {
29
+ http.Client ? httpClient,
30
+ super .authentications,
31
+ }) : super (
32
+ httpClient: WebDavCSRFClient (
33
+ baseURL,
34
+ httpClient: httpClient,
35
+ ),
31
36
);
32
37
33
- // ignore: public_member_api_docs
34
- final NextcloudClient rootClient;
35
-
36
- /// {@macro WebDavCSRFClient}
37
- // TODO: Fix this bug in server.
38
- final WebDavCSRFClient csrfClient;
38
+ /// Creates a new [WebDavClient] from another [client] .
39
+ WebDavClient .fromClient (DynamiteClient client)
40
+ : this (
41
+ client.baseURL,
42
+ httpClient: client.httpClient,
43
+ authentications: client.authentications,
44
+ );
39
45
40
- Uri _constructUri ([PathUri ? path]) => constructUri (rootClient. baseURL, path);
46
+ Uri _constructUri ([PathUri ? path]) => constructUri (baseURL, path);
41
47
42
48
/// Returns a request to query the WebDAV capabilities of the server.
43
49
///
@@ -59,7 +65,7 @@ class WebDavClient {
59
65
Future <WebDavOptions > options () async {
60
66
final request = options_Request ();
61
67
62
- final streamedResponse = await csrfClient .send (request);
68
+ final streamedResponse = await httpClient .send (request);
63
69
if (streamedResponse.statusCode != 200 ) {
64
70
final response = await http.Response .fromStream (streamedResponse);
65
71
throw DynamiteStatusCodeException (response);
@@ -105,7 +111,7 @@ class WebDavClient {
105
111
set : set ,
106
112
);
107
113
108
- final streamedResponse = await csrfClient .send (request);
114
+ final streamedResponse = await httpClient .send (request);
109
115
if (streamedResponse.statusCode != 201 ) {
110
116
final response = await http.Response .fromStream (streamedResponse);
111
117
throw DynamiteStatusCodeException (response);
@@ -134,7 +140,7 @@ class WebDavClient {
134
140
Future <http.StreamedResponse > delete (PathUri path) async {
135
141
final request = delete_Request (path);
136
142
137
- final streamedResponse = await csrfClient .send (request);
143
+ final streamedResponse = await httpClient .send (request);
138
144
if (streamedResponse.statusCode != 204 ) {
139
145
final response = await http.Response .fromStream (streamedResponse);
140
146
throw DynamiteStatusCodeException (response);
@@ -196,7 +202,7 @@ class WebDavClient {
196
202
checksum: checksum,
197
203
);
198
204
199
- final streamedResponse = await csrfClient .send (request);
205
+ final streamedResponse = await httpClient .send (request);
200
206
if (streamedResponse.statusCode != 201 ) {
201
207
final response = await http.Response .fromStream (streamedResponse);
202
208
throw DynamiteStatusCodeException (response);
@@ -285,7 +291,7 @@ class WebDavClient {
285
291
onProgress: onProgress,
286
292
);
287
293
288
- final streamedResponse = await csrfClient .send (request);
294
+ final streamedResponse = await httpClient .send (request);
289
295
if (streamedResponse.statusCode != 201 ) {
290
296
final response = await http.Response .fromStream (streamedResponse);
291
297
throw DynamiteStatusCodeException (response);
@@ -355,7 +361,7 @@ class WebDavClient {
355
361
onProgress: onProgress,
356
362
);
357
363
358
- final streamedResponse = await csrfClient .send (request);
364
+ final streamedResponse = await httpClient .send (request);
359
365
if (streamedResponse.statusCode != 201 ) {
360
366
final response = await http.Response .fromStream (streamedResponse);
361
367
throw DynamiteStatusCodeException (response);
@@ -399,7 +405,7 @@ class WebDavClient {
399
405
void Function (double progress)? onProgress,
400
406
}) async {
401
407
final request = get_Request (path);
402
- final streamedResponse = await csrfClient .send (request);
408
+ final streamedResponse = await httpClient .send (request);
403
409
if (streamedResponse.statusCode != 200 ) {
404
410
final response = await http.Response .fromStream (streamedResponse);
405
411
throw DynamiteStatusCodeException (response);
@@ -491,7 +497,7 @@ class WebDavClient {
491
497
depth: depth,
492
498
);
493
499
494
- final streamedResponse = await csrfClient .send (request);
500
+ final streamedResponse = await httpClient .send (request);
495
501
final response = await http.Response .fromStream (streamedResponse);
496
502
if (streamedResponse.statusCode != 207 ) {
497
503
throw DynamiteStatusCodeException (response);
@@ -540,7 +546,7 @@ class WebDavClient {
540
546
prop: prop,
541
547
);
542
548
543
- final streamedResponse = await csrfClient .send (request);
549
+ final streamedResponse = await httpClient .send (request);
544
550
final response = await http.Response .fromStream (streamedResponse);
545
551
if (streamedResponse.statusCode != 207 ) {
546
552
throw DynamiteStatusCodeException (response);
@@ -592,7 +598,7 @@ class WebDavClient {
592
598
remove: remove,
593
599
);
594
600
595
- final streamedResponse = await csrfClient .send (request);
601
+ final streamedResponse = await httpClient .send (request);
596
602
final response = await http.Response .fromStream (streamedResponse);
597
603
if (streamedResponse.statusCode != 207 ) {
598
604
throw DynamiteStatusCodeException (response);
@@ -650,7 +656,7 @@ class WebDavClient {
650
656
overwrite: overwrite,
651
657
);
652
658
653
- final streamedResponse = await csrfClient .send (request);
659
+ final streamedResponse = await httpClient .send (request);
654
660
if (streamedResponse.statusCode != 201 && streamedResponse.statusCode != 204 ) {
655
661
final response = await http.Response .fromStream (streamedResponse);
656
662
throw DynamiteStatusCodeException (response);
@@ -700,7 +706,7 @@ class WebDavClient {
700
706
overwrite: overwrite,
701
707
);
702
708
703
- final streamedResponse = await csrfClient .send (request);
709
+ final streamedResponse = await httpClient .send (request);
704
710
if (streamedResponse.statusCode != 201 && streamedResponse.statusCode != 204 ) {
705
711
final response = await http.Response .fromStream (streamedResponse);
706
712
throw DynamiteStatusCodeException (response);
@@ -712,7 +718,7 @@ class WebDavClient {
712
718
void _addBaseHeaders (http.BaseRequest request) {
713
719
request.headers['content-type' ] = 'application/xml' ;
714
720
715
- final authentication = rootClient. authentications? .firstOrNull;
721
+ final authentication = authentications? .firstOrNull;
716
722
if (authentication != null ) {
717
723
request.headers.addAll (
718
724
authentication.headers,
0 commit comments