From f4d62950de9e1d101f5fc4ecdfa735baecd487d2 Mon Sep 17 00:00:00 2001 From: Abhishek Shroff Date: Tue, 5 Nov 2024 08:28:05 +0530 Subject: [PATCH] [client] properly parse ancestor info, including clearing parent --- .../libphylum/repositories/resource_repository.dart | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/client/lib/libphylum/repositories/resource_repository.dart b/client/lib/libphylum/repositories/resource_repository.dart index 3e3928f5..60d6944a 100644 --- a/client/lib/libphylum/repositories/resource_repository.dart +++ b/client/lib/libphylum/repositories/resource_repository.dart @@ -89,7 +89,7 @@ class ResourceRepository { Future<(Iterable, Iterable)> parseFullResourceObject(Map data) async { final ancestors = (data['ancestors'] as List).cast().map( - (a) => parsePartialResourceObject(a.cast()).copyWith(dir: Value(true)), + (a) => parseResourceAncestor(a.cast()).copyWith(dir: Value(true)), ); final info = parseResourceObject(data['info'])..copyWith(lastRefresh: Value(DateTime.now())); @@ -122,9 +122,18 @@ class ResourceRepository { ); } + ResourcesCompanion parseResourceAncestor(Map data) { + return ResourcesCompanion( + id: Value(data['id']), + parent: Value(data['parent']), + name: Value(data['name']), + dir: Value(true), + permissions: data['permisisons'] == '{}' ? Value(null) : Value(data['permisisons'])); + } + ResourcesCompanion parsePartialResourceObject(Map data) { return ResourcesCompanion( - id: Value.absentIfNull(data['id']), + id: Value(data['id']), parent: Value.absentIfNull(data['parent']), name: Value.absentIfNull(data['name']), dir: Value.absentIfNull(data['dir']),