Skip to content

Commit 88e2a5c

Browse files
committed
Merge branch 'next' of https://github.com/Geode-solutions/OpenGeodeWeb-Back into fix/db-viewer-object
2 parents e2e9b37 + 64248b8 commit 88e2a5c

File tree

2 files changed

+38
-28
lines changed

2 files changed

+38
-28
lines changed

src/opengeodeweb_back/utils_functions.py

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import time
55
import zipfile
66
from collections.abc import Callable
7-
from typing import Any
87
from concurrent.futures import ThreadPoolExecutor
98

109
# Third party imports
@@ -112,7 +111,7 @@ def validate_request(request: flask.Request, schema: dict[str, str]) -> None:
112111

113112

114113
def set_interval(
115-
function: Callable[[Any], None], seconds: float, args: Any
114+
function: Callable[[flask.Flask], None], seconds: float, args: flask.Flask
116115
) -> threading.Timer:
117116
def function_wrapper() -> None:
118117
set_interval(function, seconds, args)
@@ -129,7 +128,7 @@ def extension_from_filename(filename: str) -> str:
129128

130129

131130
def send_file(
132-
upload_folder: str, saved_files: str, new_file_name: str
131+
upload_folder: str, saved_files: list[str], new_file_name: str
133132
) -> flask.Response:
134133
if len(saved_files) == 1:
135134
mimetype = "application/octet-binary"
@@ -177,20 +176,10 @@ def create_data_folder_from_id(data_id: str) -> str:
177176

178177
def save_all_viewables_and_return_info(
179178
geode_object: str,
180-
data: Any,
181-
input_file: str | None = None,
182-
additional_files: list[str] | None = None,
183-
) -> dict[str, Any]:
184-
if additional_files is None:
185-
additional_files = []
186-
187-
data_entry = Data.create(
188-
geode_object=geode_object,
189-
viewer_object=geode_functions.get_object_type(geode_object),
190-
input_file=input_file,
191-
additional_files=additional_files,
192-
)
193-
data_path = create_data_folder_from_id(data_entry.id)
179+
data: object,
180+
data_entry: Data,
181+
data_path: str,
182+
) -> dict[str, str | list[str]]:
194183
with ThreadPoolExecutor() as executor:
195184
native_future = executor.submit(
196185
geode_functions.save,
@@ -231,23 +220,28 @@ def save_all_viewables_and_return_info(
231220

232221

233222
def generate_native_viewable_and_light_viewable_from_object(
234-
geode_object: str, data: Any
235-
) -> dict[str, Any]:
236-
return save_all_viewables_and_return_info(geode_object, data, input_file="")
223+
geode_object: str, data: object
224+
) -> dict[str, str | list[str]]:
225+
data_entry = Data.create(
226+
geode_object=geode_object,
227+
input_file="",
228+
additional_files=[],
229+
)
230+
data_path = create_data_folder_from_id(data_entry.id)
231+
return save_all_viewables_and_return_info(geode_object, data, data_entry, data_path)
237232

238233

239234
def generate_native_viewable_and_light_viewable_from_file(
240235
geode_object: str, input_filename: str
241-
) -> dict[str, Any]:
242-
243-
temp_data_entry = Data.create(
236+
) -> dict[str, str | list[str]]:
237+
data_entry = Data.create(
244238
geode_object=geode_object,
245239
viewer_object=geode_functions.get_object_type(geode_object),
246240
input_file=input_filename,
247241
additional_files=[],
248242
)
249243

250-
data_path = create_data_folder_from_id(temp_data_entry.id)
244+
data_path = create_data_folder_from_id(data_entry.id)
251245

252246
full_input_filename = geode_functions.upload_file_path(input_filename)
253247
copied_full_path = os.path.join(
@@ -272,9 +266,10 @@ def generate_native_viewable_and_light_viewable_from_file(
272266

273267
data = geode_functions.load(geode_object, copied_full_path)
274268

269+
data_entry.additional_files = additional_files_copied
275270
return save_all_viewables_and_return_info(
276271
geode_object,
277272
data,
278-
input_file=input_filename,
279-
additional_files=additional_files_copied,
273+
data_entry,
274+
data_path,
280275
)

tests/test_utils_functions.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,15 @@ def test_save_all_viewables_and_return_info(client):
103103
input_file = "test.og_brep"
104104
additional_files = ["additional_file.txt"]
105105

106+
data_entry = Data.create(
107+
geode_object=geode_object,
108+
input_file=input_file,
109+
additional_files=additional_files,
110+
)
111+
data_path = utils_functions.create_data_folder_from_id(data_entry.id)
112+
106113
result = utils_functions.save_all_viewables_and_return_info(
107-
geode_object, data, input_file, additional_files
114+
geode_object, data, data_entry, data_path
108115
)
109116

110117
assert isinstance(result, dict)
@@ -136,8 +143,16 @@ def test_save_all_viewables_commits_to_db(client):
136143
geode_object = "BRep"
137144
data = geode_functions.load(geode_object, "./tests/data/test.og_brep")
138145
input_file = "test.og_brep"
146+
147+
data_entry = Data.create(
148+
geode_object=geode_object,
149+
input_file=input_file,
150+
additional_files=[],
151+
)
152+
data_path = utils_functions.create_data_folder_from_id(data_entry.id)
153+
139154
result = utils_functions.save_all_viewables_and_return_info(
140-
geode_object, data, input_file
155+
geode_object, data, data_entry, data_path
141156
)
142157
data_id = result["id"]
143158
db_entry_before = Data.get(data_id)

0 commit comments

Comments
 (0)