From 9808c6af1da970c2290f571419427f36ef80366b Mon Sep 17 00:00:00 2001
From: Dave Welsh <dw927@drexel.edu>
Date: Sun, 26 Feb 2023 19:58:05 -0500
Subject: [PATCH] Getting images from s3 now through hard coding.

---
 front_end/dpath.py                   |  5 ++--
 upload_service/app.py                |  3 +-
 upload_service/diagnosis_provider.py | 41 ++++++++++++++++++++++++----
 3 files changed, 41 insertions(+), 8 deletions(-)

diff --git a/front_end/dpath.py b/front_end/dpath.py
index 86907dd..bf57598 100644
--- a/front_end/dpath.py
+++ b/front_end/dpath.py
@@ -70,8 +70,9 @@ def post_file(request) :
     return response
 
 def image_name(image_url) :
-    image_name = image_url.split('/')[-1]
-    return image_name
+    print(image_url)
+    print(image_url.split('/')[-1])
+    return image_url.split('/')[-1]
 
 def upload_service_url(image_url) :
     return image_url.replace('..', REPORTS_SERVICE_URL)
diff --git a/upload_service/app.py b/upload_service/app.py
index 136f07f..b99946f 100644
--- a/upload_service/app.py
+++ b/upload_service/app.py
@@ -34,6 +34,7 @@ def get_reports() :
 @app.route(f'/{PREFIX}/report/<string:report_id>/images', methods=['GET'])
 def get_images(report_id) :
 	provider = Provider()
+	provider.download_images(report_id)
 	response = jsonify(provider.get_images(report_id))
 	response.status_code = 200
 	return response
@@ -41,7 +42,7 @@ def get_images(report_id) :
 @app.route(f'/{PREFIX}/report/<string:report_id>/image/<string:file_name>', methods=['GET'])
 def get_image(report_id, file_name) :
 	provider = Provider()
-	path = provider.get_image_path(file_name)
+	path = provider.get_image_path(report_id, file_name)
 	return send_file(
 		path,
 		download_name=file_name,
diff --git a/upload_service/diagnosis_provider.py b/upload_service/diagnosis_provider.py
index 2c37d44..b7b4907 100644
--- a/upload_service/diagnosis_provider.py
+++ b/upload_service/diagnosis_provider.py
@@ -2,6 +2,8 @@ import requests
 from PIL import Image
 import os
 from base64 import b64encode
+import boto3
+import glob
 
 BASE_URL = 'http://127.0.0.1:5000'
 SAVE_DIRECTORY = 'C:\\Users\\Dave\\OneDrive\\Documents\\Capstone\\data\\'
@@ -21,17 +23,46 @@ class Provider:
 
     def get_reports(self):
         url = BASE_URL + '/request_info'
-        return requests.get(url).json()
+        response = requests.get(url)
+        return response.json()
     
     def get_images(self, report_id):
+        report_id = 'fake_request_id'
+        save_chip_path = f'../dpath/report/{report_id}/image'
+        result = glob.glob(f'{save_chip_path}/*.png')[:50]
         response = []
-        for _ in range(50) :
-            response.append(f'../dpath/report/{report_id}/image/reportimage123.png')
+        for i in result:
+            response.append(i.replace('\\', '/'))
         return response
     
-    def get_image_path(self, image_name):
-        return SAVE_DIRECTORY + image_name
+    def download_images(self, report_id) :
+        s3_client = boto3.client('s3')
+        s3_resource = boto3.resource('s3')
+        image_bucket = s3_resource.Bucket('digpath-predictions')
+        report_id = 'fake_request_id'
+        save_chip_path = f'../dpath/report/{report_id}/image'
+        dowloaded_files = glob.glob(f'{save_chip_path}/*.png')
+        prefix = f'{report_id}/severe_predictions/'
+
+        if not os.path.exists(save_chip_path):
+            os.makedirs(save_chip_path)
+
+        for s3_obj in image_bucket.objects.filter(Prefix=prefix):
+            if s3_obj.key == prefix:
+                continue
+        
+            filename = s3_obj.key.split('/')[-1]
+            file_path = f'{save_chip_path}/{filename}'
+            if(file_path not in dowloaded_files) :
+                s3_client.download_file('digpath-predictions', s3_obj.key, file_path)
     
+    def get_image_path_old(self, image_name):
+        return SAVE_DIRECTORY + image_name
+
+    def get_image_path(self, report_id, image_name) :
+        report_id = 'fake_request_id'
+        return f'{os.getcwd()}/../dpath/report/{report_id}/image/{image_name}'.replace('\\', '/')
+        
     def __save_local_file(self, file):
         file_name = 'reportimage123.png'
         new_file = open(SAVE_DIRECTORY + file_name, 'wb')
-- 
GitLab