wip: bloc for files
This commit is contained in:
31
lib/state/app/modules/files/repository/files_repository.dart
Normal file
31
lib/state/app/modules/files/repository/files_repository.dart
Normal file
@ -0,0 +1,31 @@
|
||||
|
||||
import 'package:nextcloud/nextcloud.dart';
|
||||
|
||||
import '../../../../../api/marianumcloud/webdav/webdavApi.dart';
|
||||
import '../../../infrastructure/repository/repository.dart';
|
||||
import '../bloc/files_state.dart';
|
||||
|
||||
class FilesRepository extends Repository<FilesState> {
|
||||
Future<List<File>> getFileList(String path) async {
|
||||
var webdav = await WebdavApi.webdav;
|
||||
var response = await webdav.propfind(PathUri.parse(path)); // TODO move to custom data loader
|
||||
var davFiles = response.toWebDavFiles();
|
||||
|
||||
davFiles.removeWhere((file) {
|
||||
var filePath = file.path.path;
|
||||
return filePath.isEmpty || filePath == path;
|
||||
});
|
||||
|
||||
var files = davFiles.map((davFile) => File(
|
||||
path: davFile.path.path,
|
||||
isFolder: davFile.isDirectory,
|
||||
name: davFile.name,
|
||||
createdAt: davFile.createdDate,
|
||||
updatedAt: davFile.lastModified,
|
||||
size: davFile.size,
|
||||
mimeType: davFile.mimeType
|
||||
));
|
||||
|
||||
return files.toList();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user