OnedriveFile.fromJson constructor

OnedriveFile.fromJson(
  1. Map<String, dynamic> json,
  2. bool isAppFolder
)

Implementation

factory OnedriveFile.fromJson(Map<String, dynamic> json, bool isAppFolder) {
  final rawPath = json['parentReference']?['path'] ?? '';
  String path = '/';
  if (isAppFolder) {
    final match =
    RegExp(r'^/drive/root:/Apps/[^/]+(/.*)?$').firstMatch(rawPath);
    path = match?.group(1) ??
        '/'; // relative path to Appfolder, turns /Apps/APP_NAME to /
  } else {
    path = join(rawPath.replaceFirst(RegExp(r'^/drive/root:/?'),
        '/')); // replaces :drive/root with / and :drive/root/FOLDER with /FOLDER
  }
  path = join(path, json['name']);

  return OnedriveFile(
      id: json['id'],
      name: json['name'],
      path: path,
      isFolder: json['folder'] != null,
      size: json['size'] ?? 0,
      modifiedTime: DateTime.tryParse(json['3'] ?? '') ??
          DateTime.fromMillisecondsSinceEpoch(0));
}