createDirectory method

Future<void> createDirectory(
  1. String name,
  2. String parent, {
  3. String? creationTime,
  4. String? modificationTime,
})

Implementation

Future<void> createDirectory(String name, String parent,
    {String? creationTime, String? modificationTime}) async {
  final uuid = crypto.uuid();
  final mk = masterKeys.last;
  if (mk.isEmpty) throw Exception('No master keys available');
  final encName =
      await crypto.encryptMetadata002(json.encode({'name': name}), mk);
  final hashed = await crypto.hashFileName(name, masterKeys, email);

  final payload = <String, dynamic>{
    'uuid': uuid,
    'name': encName,
    'nameHashed': hashed,
    'parent': parent,
  };

  if (creationTime != null) payload['creationTime'] = creationTime;
  if (modificationTime != null)
    payload['modificationTime'] = modificationTime;

  await api.post('/v3/dir/create', payload);
  cache.invalidate(parent);
}