getSharedNotes function

Future<Map> getSharedNotes(
  1. BuildContext context,
  2. Widget childPage, {
  3. bool filesWithGrantAccess = true,
})

Implementation

Future<Map> getSharedNotes(BuildContext context, Widget childPage,
    {bool filesWithGrantAccess = true}) async {
  final loggedIn = await loginIfRequired(context);
  String webId = await getWebId() as String;
  webId = webId.replaceAll(profCard, '');

  if (loggedIn) {
    Map sharedNotesLogMap = await sharedResources(context, childPage);

    Map sharedNotesMap = {};

    if (!sharedNotesLogMap.isEmpty) {
      for (final sharedFilaUrl in sharedNotesLogMap.keys) {
        final sharedFileDetails = sharedNotesLogMap[sharedFilaUrl];

        // If [filesWithGrantAccess] is set to true record only the files
        // with grant permission as the latest log entry
        if (filesWithGrantAccess &&
            sharedFileDetails[PermissionLogLiteral.type] == 'revoke') {
          continue;
        }

        sharedNotesMap[sharedFilaUrl] = {
          sharedTime: sharedFileDetails[PermissionLogLiteral.logtime],
          noteUrl: sharedFileDetails[PermissionLogLiteral.resource],
          noteFileName: sharedFilaUrl.split('/').last,
          noteOwner: sharedFileDetails[PermissionLogLiteral.owner],
          permissionGranter: sharedFileDetails[PermissionLogLiteral.granter],
          permissionRecepient:
              sharedFileDetails[PermissionLogLiteral.recepient],
          permissionType: sharedFileDetails[PermissionLogLiteral.type],
          permissionList: sharedFileDetails[PermissionLogLiteral.permissions],
        };
      }
    }

    return sharedNotesMap;
  } else {
    return {};
  }
}