Skip to content

Commit 8292f81

Browse files
authored
Merge pull request #160 from Geode-solutions/next
fix(utils_functions) : next to master
2 parents 6bf831e + e2f8724 commit 8292f81

File tree

5 files changed

+41
-36
lines changed

5 files changed

+41
-36
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
55

66
[project]
77
name = "OpenGeodeWeb-Back"
8-
version = "5.8.4"
8+
version = "5.8.5-rc.1"
99
dynamic = ["dependencies"]
1010
authors = [
1111
{ name="Geode-solutions", email="[email protected]" },

src/opengeodeweb_back/routes/blueprint_routes.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
# Third party imports
77
import flask
88
import opengeode
9-
import uuid
109
import werkzeug
1110

1211
# Local application imports
@@ -247,10 +246,12 @@ def save_viewable_file():
247246
secure_filename = werkzeug.utils.secure_filename(flask.request.json["filename"])
248247
file_path = os.path.abspath(os.path.join(UPLOAD_FOLDER, secure_filename))
249248
data = geode_functions.load(flask.request.json["input_geode_object"], file_path)
250-
response_data = utils_functions.create_response_with_binary_light_viewable(
251-
flask.request.json["input_geode_object"], data, DATA_FOLDER_PATH
249+
return flask.make_response(
250+
utils_functions.generate_native_viewable_and_light_viewable(
251+
flask.request.json["input_geode_object"], data, DATA_FOLDER_PATH
252+
),
253+
200,
252254
)
253-
return flask.jsonify(response_data), 200
254255

255256

256257
with open(os.path.join(schemas, "create_point.json"), "r") as file:
@@ -271,7 +272,7 @@ def create_point():
271272
builder.create_point(opengeode.Point3D([x, y, z]))
272273
builder.set_name(title)
273274
return flask.make_response(
274-
utils_functions.create_response_with_binary_light_viewable(
275+
utils_functions.generate_native_viewable_and_light_viewable(
275276
"PointSet3D", PointSet3D, DATA_FOLDER_PATH
276277
),
277278
200,

src/opengeodeweb_back/routes/models/blueprint_models.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,10 @@
1717
vtm_component_indices_json["route"], methods=vtm_component_indices_json["methods"]
1818
)
1919
def uuid_to_flat_index():
20-
21-
print(f"uuid_to_flat_index : {flask.request=}", flush=True)
2220
utils_functions.validate_request(flask.request, vtm_component_indices_json)
2321
vtm_file_path = os.path.join(
2422
flask.current_app.config["DATA_FOLDER_PATH"], flask.request.json["id"] + ".vtm"
2523
)
26-
2724
tree = ET.parse(vtm_file_path)
2825
root = tree.find("vtkMultiBlockDataSet")
2926
uuid_to_flat_index = {}
@@ -60,16 +57,11 @@ def extract_model_uuids(geode_object, file_path):
6057

6158
@routes.route(mesh_components_json["route"], methods=mesh_components_json["methods"])
6259
def extract_uuids_endpoint():
63-
print(f"extract_uuids_endpoint : {flask.request=}", flush=True)
64-
6560
utils_functions.validate_request(flask.request, mesh_components_json)
66-
6761
file_path = os.path.join(
6862
flask.current_app.config["DATA_FOLDER_PATH"], flask.request.json["filename"]
6963
)
70-
7164
if not os.path.exists(file_path):
7265
return flask.make_response({"error": "File not found"}, 404)
73-
7466
uuid_dict = extract_model_uuids(flask.request.json["geode_object"], file_path)
7567
return flask.make_response({"uuid_dict": uuid_dict}, 200)

src/opengeodeweb_back/utils_functions.py

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,13 @@ def handle_exception(e):
143143
return response
144144

145145

146-
def save_native_viewable_binary_file_names(geode_object, data, folder_absolute_path):
146+
def generate_native_viewable_and_light_viewable(
147+
geode_object, data, folder_absolute_path
148+
):
147149
generated_id = str(uuid.uuid4()).replace("-", "")
150+
name = data.name()
151+
object_type = geode_functions.get_object_type(geode_object)
152+
148153
saved_native_file_path = geode_functions.save(
149154
geode_object,
150155
data,
@@ -160,30 +165,13 @@ def save_native_viewable_binary_file_names(geode_object, data, folder_absolute_p
160165
f = open(saved_light_viewable_file_path, "rb")
161166
binary_light_viewable = f.read()
162167
f.close()
163-
return {
164-
"native_file_name": os.path.basename(saved_native_file_path[0]),
165-
"viewable_file_name": os.path.basename(saved_viewable_file_path[0]),
166-
"binary_light_viewable": str(binary_light_viewable, "utf-8"),
167-
}
168-
169-
170-
def create_response_with_binary_light_viewable(
171-
geode_object, data, folder_absolute_path
172-
):
173-
generated_id = str(uuid.uuid4()).replace("-", "")
174-
name = data.name()
175-
object_type = geode_functions.get_object_type(geode_object)
176-
177-
native_file_name, viewable_file_name, binary_light_viewable = (
178-
save_native_viewable_binary_file_names(geode_object, data, folder_absolute_path)
179-
)
180168

181169
return {
182170
"name": name,
183-
"native_file_name": native_file_name,
184-
"viewable_file_name": viewable_file_name,
171+
"native_file_name": os.path.basename(saved_native_file_path[0]),
172+
"viewable_file_name": os.path.basename(saved_viewable_file_path),
185173
"id": generated_id,
186174
"object_type": object_type,
187-
"binary_light_viewable": binary_light_viewable,
175+
"binary_light_viewable": str(binary_light_viewable, "utf-8"),
188176
"geode_object": geode_object,
189177
}

tests/test_utils_functions.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
# Standard library imports
2+
import re
3+
import os
24

35
# Third party imports
46
import flask
57

68
# Local application imports
7-
from src.opengeodeweb_back import utils_functions
9+
from src.opengeodeweb_back import geode_functions, utils_functions
810

911

1012
def test_increment_request_counter(app_context):
@@ -67,3 +69,25 @@ def test_handle_exception(client):
6769
assert type(data["description"]) is str
6870
assert type(data["name"]) is str
6971
assert type(data["code"]) is int
72+
73+
74+
def test_generate_native_viewable_and_light_viewable():
75+
geode_object = "BRep"
76+
folder_absolute_path = os.path.abspath("./data")
77+
data = geode_functions.load(
78+
geode_object, os.path.join(folder_absolute_path, "test.og_brep")
79+
)
80+
folder_absolute_path = "None"
81+
result = utils_functions.generate_native_viewable_and_light_viewable(
82+
geode_object, data, folder_absolute_path
83+
)
84+
assert type(result) is dict
85+
assert type(result["name"]) is str
86+
assert type(result["native_file_name"]) is str
87+
assert re.match(r"[0-9a-f]{32}\.[a-zA-Z0-9]+", result["native_file_name"])
88+
assert type(result["viewable_file_name"]) is str
89+
assert re.match(r"[0-9a-f]{32}\.[a-zA-Z0-9]+", result["viewable_file_name"])
90+
assert type(result["id"]) is str
91+
assert re.match(r"[0-9a-f]{32}", result["id"])
92+
assert type(result["object_type"]) is str
93+
assert type(result["binary_light_viewable"]) is str

0 commit comments

Comments
 (0)