From bbffbf386a707a30094675edd06fbf5cb7b4d3bb Mon Sep 17 00:00:00 2001
From: Sara <sarasdj@stud.ntnu.no>
Date: Fri, 5 Apr 2024 15:02:37 +0200
Subject: [PATCH] update: maybe fix loadRelation()

---
 app/lib/server_requests/fetch_relation.dart | 16 +++++++---------
 app/lib/server_requests/init_state.dart     |  6 ++----
 server/main.py                              |  4 +++-
 3 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/app/lib/server_requests/fetch_relation.dart b/app/lib/server_requests/fetch_relation.dart
index 3f723fae..999ec52e 100644
--- a/app/lib/server_requests/fetch_relation.dart
+++ b/app/lib/server_requests/fetch_relation.dart
@@ -45,25 +45,23 @@ Future<Uint8List> fetchRelation() async {
   }
 }
 
+/// Load last saved relation data form last_relation.json
 Future<Uint8List> loadSavedRelation() async {
   try {
     // Get latest saved relation from file if the server does not respond
     Directory appDocumentsDirectory = await getApplicationDocumentsDirectory();
     String filePath = '${appDocumentsDirectory.path}/last_relation.json';
 
-    // Read file contents
+    // Read file contents as bytes
     File file = File(filePath);
     if (await file.exists()) {
-      String contents = await file.readAsString();
-      List<dynamic> jsonData = json.decode(contents); // Parse JSON string from file
-      Uint8List relation = Uint8List.fromList(utf8.encode(jsonData.toString()));
-      return relation;
+      Uint8List bytes = await file.readAsBytes();
+      return bytes;
     } else {
-      throw Exception('File does not exist');
+      throw Exception('Relation file does not exist');
     }
   } catch (error) {
-      print('Error in reading relation from file: $error');
-      return Uint8List(0);
+    print('Error in reading relation from file: $error');
+    return Uint8List(0);
   }
 }
-
diff --git a/app/lib/server_requests/init_state.dart b/app/lib/server_requests/init_state.dart
index b2e2182b..dd02829a 100644
--- a/app/lib/server_requests/init_state.dart
+++ b/app/lib/server_requests/init_state.dart
@@ -20,10 +20,8 @@ Future<void> initialiseState() async {
   late Future<Uint8List> relationFuture;
 
   try {
-
-    // Read data from files if no internet connection
-    if (!internetConnection) {
-      selectedRelation = Uint8List(0); // NB update once fixed
+    if (!internetConnection) {  // Read data from files if no internet connection
+      selectedRelation = await loadSavedRelation();
 
       FetchResult fetchResult = await loadSavedData();
       List<Measurement> measurements = fetchResult.measurements;
diff --git a/server/main.py b/server/main.py
index 2232bc36..846143ee 100644
--- a/server/main.py
+++ b/server/main.py
@@ -13,6 +13,7 @@ import sqlite3
 app = Flask(__name__)
 terminate_server = 0
 
+
 class IceHTTPServer(HTTPServer):
     def __init__(self, server_address, handler_class, cursor):
         super().__init__(server_address, handler_class)
@@ -65,7 +66,8 @@ class IceHTTP(BaseHTTPRequestHandler):
 
     def do_POST(self):
         if self.path == '/new_lidar_data':
-            input_new_Lidar_data(self,self.cursor, 1, 'Mjosa')  # hardcoded body of water must change later
+            input_new_Lidar_data(self, self.cursor, 1, 'Mjosa')  # hardcoded body of water must change later
+
 
 # Start a server on port 8443 using self defined HTTP class
 if __name__ == "__main__":
-- 
GitLab