Skip to content

Commit

Permalink
Improve controller
Browse files Browse the repository at this point in the history
  • Loading branch information
dhzdhd committed Jun 17, 2024
1 parent 00ff53a commit 1f6b6f8
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 29 deletions.
52 changes: 41 additions & 11 deletions lib/src/accounts/controllers/folder_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -161,11 +161,11 @@ class Folder extends _$Folder {
files: files,
);

state = [...state, folderModel];
Hive.box('vault').put(
'folders',
jsonEncode(state.map((e) => e.toJson()).toList()),
);
state = [...state, folderModel];
}

Future<void> upload(
Expand All @@ -182,18 +182,48 @@ class Folder extends _$Folder {
)
.first;

await ref
.read(authProvider.notifier)
.refresh(oldAuthModel)
.flatMap(
(r) => switch (r.provider) {
AuthProviderType.oneDrive => OneDrive(),
AuthProviderType.dropBox => DropBox(),
AuthProviderType.googleDrive => GoogleDrive()
}
.upload(folderModel, r, filePath),
final newAuthModel =
(await ref.read(authProvider.notifier).refresh(oldAuthModel).run())
.match((l) => throw l, (r) => r);

final result = await switch (newAuthModel.provider) {
AuthProviderType.oneDrive => OneDrive(),
AuthProviderType.dropBox => DropBox(),
AuthProviderType.googleDrive => GoogleDrive()
}
.upload(folderModel, newAuthModel, filePath)
.run();

final driveService = switch (newAuthModel.provider) {
AuthProviderType.oneDrive => OneDrive(),
AuthProviderType.dropBox => DropBox(),
AuthProviderType.googleDrive => GoogleDrive()
};

// TODO: Implement for particular folder
final files = await driveService
.getAllItems(
root: none(),
accessToken: newAuthModel.accessToken,
filter: none(),
)
.match((l) => throw l, (r) => r)
.run();

state = [
...state
..remove(folderModel)
..add(folderModel.copyWith(files: files))
];
Hive.box('vault').put(
'folders',
jsonEncode(state.map((e) => e.toJson()).toList()),
);

print(result);
if (result.isLeft()) {
throw result.getLeft().toNullable()!;
}
}

TaskEither<AppError, ()> delete(FolderModel model, Option<String> path) {
Expand Down
1 change: 1 addition & 0 deletions lib/src/accounts/services/drive/onedrive.dart
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ class OneDrive implements DriveService {
bool flatten = true,
}) {
// TODO: Implement root folder
// TODO: Apply filter or make a getOneItem fn
final uri = Uri.https(
apiHost,
root.match(
Expand Down
36 changes: 18 additions & 18 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -457,10 +457,10 @@ packages:
dependency: transitive
description:
name: hotreloader
sha256: "94ee21a60ea2836500799f3af035dc3212b1562027f1e0031c14e087f0231449"
sha256: ed56fdc1f3a8ac924e717257621d09e9ec20e308ab6352a73a50a1d7a4d9158e
url: "https://pub.dev"
source: hosted
version: "4.1.0"
version: "4.2.0"
http:
dependency: transitive
description:
Expand Down Expand Up @@ -513,10 +513,10 @@ packages:
dependency: transitive
description:
name: intl
sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d"
sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
url: "https://pub.dev"
source: hosted
version: "0.18.1"
version: "0.19.0"
io:
dependency: transitive
description:
Expand Down Expand Up @@ -553,26 +553,26 @@ packages:
dependency: transitive
description:
name: leak_tracker
sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
url: "https://pub.dev"
source: hosted
version: "10.0.0"
version: "10.0.4"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "3.0.3"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "3.0.1"
lints:
dependency: transitive
description:
Expand Down Expand Up @@ -617,10 +617,10 @@ packages:
dependency: transitive
description:
name: meta
sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
url: "https://pub.dev"
source: hosted
version: "1.11.0"
version: "1.12.0"
mime:
dependency: transitive
description:
Expand Down Expand Up @@ -1006,10 +1006,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
url: "https://pub.dev"
source: hosted
version: "0.6.1"
version: "0.7.0"
timing:
dependency: transitive
description:
Expand Down Expand Up @@ -1134,10 +1134,10 @@ packages:
dependency: transitive
description:
name: vm_service
sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
url: "https://pub.dev"
source: hosted
version: "13.0.0"
version: "14.2.1"
watcher:
dependency: "direct main"
description:
Expand Down Expand Up @@ -1219,5 +1219,5 @@ packages:
source: hosted
version: "3.1.2"
sdks:
dart: ">=3.2.0 <4.0.0"
flutter: ">=3.16.7"
dart: ">=3.3.0 <4.0.0"
flutter: ">=3.18.0-18.0.pre.54"

0 comments on commit 1f6b6f8

Please sign in to comment.