Skip to content

Commit a8e29df

Browse files
authored
Merge pull request #180 from Geode-solutions/fix/unused_params
Fix/unused params
2 parents 9abf7dd + 601aff5 commit a8e29df

13 files changed

+128
-247
lines changed

src/opengeodeweb_back/data.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ class Data(Base):
1010
id: Mapped[str] = mapped_column(
1111
String, primary_key=True, default=lambda: str(uuid.uuid4()).replace("-", "")
1212
)
13-
name: Mapped[str] = mapped_column(String, nullable=False)
1413
native_file_name: Mapped[str] = mapped_column(String, nullable=False)
1514
viewable_file_name: Mapped[str] = mapped_column(String, nullable=False)
1615
geode_object: Mapped[str] = mapped_column(String, nullable=False)
@@ -21,7 +20,6 @@ class Data(Base):
2120

2221
@staticmethod
2322
def create(
24-
name: str,
2523
geode_object: str,
2624
input_file: str | None = None,
2725
additional_files: list[str] | None = None,
@@ -30,7 +28,6 @@ def create(
3028
additional_files = additional_files if additional_files is not None else []
3129

3230
data_entry = Data(
33-
name=name,
3431
geode_object=geode_object,
3532
input_file=input_file,
3633
additional_files=additional_files,
@@ -42,3 +39,7 @@ def create(
4239
database.session.add(data_entry)
4340
database.session.flush()
4441
return data_entry
42+
43+
@staticmethod
44+
def get(data_id: str) -> "Data | None":
45+
return database.session.get(Data, data_id)

src/opengeodeweb_back/geode_functions.py

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@
66
import opengeode as og # type: ignore
77
import werkzeug
88
import flask
9+
from typing import Any
910

1011
# Local application imports
1112
from .geode_objects import geode_objects_dict
1213
from . import utils_functions
14+
from .data import Data
15+
from .database import database
1316

1417

1518
def geode_object_value(geode_object: str):
@@ -45,21 +48,32 @@ def load(geode_object: str, file_absolute_path: str):
4548
return geode_object_value(geode_object)["load"](file_absolute_path)
4649

4750

48-
def data_file_path(data_id: str, filename: str) -> str:
51+
def data_file_path(data_id: str, filename: str = "") -> str:
4952
data_folder_path = flask.current_app.config["DATA_FOLDER_PATH"]
50-
return os.path.join(
51-
data_folder_path,
52-
data_id,
53-
werkzeug.utils.secure_filename(filename),
54-
)
53+
if filename:
54+
return os.path.join(data_folder_path, data_id, filename)
55+
return os.path.join(data_folder_path, data_id)
56+
57+
58+
def load_data(data_id: str) -> Any:
59+
data_entry = Data.get(data_id)
60+
if not data_entry:
61+
flask.abort(404, f"Data with id {data_id} not found")
62+
63+
file_absolute_path = data_file_path(data_id, data_entry.native_file_name)
64+
return load(data_entry.geode_object, file_absolute_path)
65+
5566

67+
def get_data_info(data_id: str) -> Data:
68+
from .data import Data
5669

57-
def load_data(geode_object: str, data_id: str, filename: str):
58-
file_absolute_path = data_file_path(data_id, filename)
59-
return load(geode_object, file_absolute_path)
70+
data_entry = Data.get(data_id)
71+
if not data_entry:
72+
flask.abort(404, f"Data with id {data_id} not found")
73+
return data_entry
6074

6175

62-
def upload_file_path(filename):
76+
def upload_file_path(filename: str) -> str:
6377
upload_folder = flask.current_app.config["UPLOAD_FOLDER"]
6478
secure_filename = werkzeug.utils.secure_filename(filename)
6579
return os.path.abspath(os.path.join(upload_folder, secure_filename))

src/opengeodeweb_back/routes/blueprint_routes.py

Lines changed: 24 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def teardown_request(exception):
5353
def allowed_files():
5454
utils_functions.validate_request(flask.request, allowed_files_json)
5555
extensions = geode_functions.list_input_extensions(
56-
flask.request.json["supported_feature"]
56+
flask.request.get_json()["supported_feature"]
5757
)
5858
return flask.make_response({"extensions": extensions}, 200)
5959

@@ -99,10 +99,10 @@ def allowed_objects():
9999

100100
utils_functions.validate_request(flask.request, allowed_objects_json)
101101
file_absolute_path = geode_functions.upload_file_path(
102-
flask.request.json["filename"]
102+
flask.request.get_json()["filename"]
103103
)
104104
allowed_objects = geode_functions.list_geode_objects(
105-
file_absolute_path, flask.request.json["supported_feature"]
105+
file_absolute_path, flask.request.get_json()["supported_feature"]
106106
)
107107
return flask.make_response({"allowed_objects": allowed_objects}, 200)
108108

@@ -120,10 +120,10 @@ def allowed_objects():
120120
)
121121
def missing_files():
122122
utils_functions.validate_request(flask.request, missing_files_json)
123-
file_path = geode_functions.upload_file_path(flask.request.json["filename"])
123+
file_path = geode_functions.upload_file_path(flask.request.get_json()["filename"])
124124

125125
additional_files = geode_functions.additional_files(
126-
flask.request.json["input_geode_object"],
126+
flask.request.get_json()["input_geode_object"],
127127
file_path,
128128
)
129129

@@ -167,7 +167,7 @@ def missing_files():
167167
def crs_converter_geographic_coordinate_systems():
168168
utils_functions.validate_request(flask.request, geographic_coordinate_systems_json)
169169
infos = geode_functions.geographic_coordinate_systems(
170-
flask.request.json["input_geode_object"]
170+
flask.request.get_json()["input_geode_object"]
171171
)
172172
crs_list = []
173173
for info in infos:
@@ -194,10 +194,12 @@ def crs_converter_geographic_coordinate_systems():
194194
def inspect_file():
195195
utils_functions.validate_request(flask.request, inspect_file_json)
196196

197-
file_path = geode_functions.upload_file_path(flask.request.json["filename"])
198-
data = geode_functions.load(flask.request.json["input_geode_object"], file_path)
197+
file_path = geode_functions.upload_file_path(flask.request.get_json()["filename"])
198+
data = geode_functions.load(
199+
flask.request.get_json()["input_geode_object"], file_path
200+
)
199201
class_inspector = geode_functions.inspect(
200-
flask.request.json["input_geode_object"], data
202+
flask.request.get_json()["input_geode_object"], data
201203
)
202204
inspection_result = geode_functions.get_inspector_children(class_inspector)
203205
return flask.make_response({"inspection_result": inspection_result}, 200)
@@ -218,14 +220,14 @@ def geode_objects_and_output_extensions():
218220
utils_functions.validate_request(
219221
flask.request, geode_objects_and_output_extensions_json
220222
)
221-
file_path = geode_functions.upload_file_path(flask.request.json["filename"])
223+
file_path = geode_functions.upload_file_path(flask.request.get_json()["filename"])
222224
data = geode_functions.load(
223-
flask.request.json["input_geode_object"],
225+
flask.request.get_json()["input_geode_object"],
224226
file_path,
225227
)
226228
geode_objects_and_output_extensions = (
227229
geode_functions.geode_objects_output_extensions(
228-
flask.request.json["input_geode_object"], data
230+
flask.request.get_json()["input_geode_object"], data
229231
)
230232
)
231233
return flask.make_response(
@@ -249,8 +251,8 @@ def save_viewable_file():
249251
utils_functions.validate_request(flask.request, save_viewable_file_json)
250252
return flask.make_response(
251253
utils_functions.generate_native_viewable_and_light_viewable_from_file(
252-
geode_object=flask.request.json["input_geode_object"],
253-
input_filename=flask.request.json["filename"],
254+
geode_object=flask.request.get_json()["input_geode_object"],
255+
input_filename=flask.request.get_json()["filename"],
254256
),
255257
200,
256258
)
@@ -263,10 +265,10 @@ def save_viewable_file():
263265
@routes.route(create_point_json["route"], methods=create_point_json["methods"])
264266
def create_point():
265267
utils_functions.validate_request(flask.request, create_point_json)
266-
title = flask.request.json["title"]
267-
x = flask.request.json["x"]
268-
y = flask.request.json["y"]
269-
z = flask.request.json["z"]
268+
title = flask.request.get_json()["title"]
269+
x = flask.request.get_json()["x"]
270+
y = flask.request.get_json()["y"]
271+
z = flask.request.get_json()["z"]
270272
class_ = geode_functions.geode_object_class("PointSet3D")
271273
PointSet3D = class_.create()
272274
builder = geode_functions.create_builder("PointSet3D", PointSet3D)
@@ -290,14 +292,8 @@ def create_point():
290292
)
291293
def texture_coordinates():
292294
utils_functions.validate_request(flask.request, texture_coordinates_json)
293-
data = geode_functions.load_data(
294-
flask.request.json["input_geode_object"],
295-
flask.request.json["id"],
296-
flask.request.json["filename"],
297-
)
298-
295+
data = geode_functions.load_data(flask.request.get_json().get("id"))
299296
texture_coordinates = data.texture_manager().texture_names()
300-
301297
return flask.make_response({"texture_coordinates": texture_coordinates}, 200)
302298

303299

@@ -314,14 +310,8 @@ def texture_coordinates():
314310
)
315311
def vertex_attribute_names():
316312
utils_functions.validate_request(flask.request, vertex_attribute_names_json)
317-
data = geode_functions.load_data(
318-
flask.request.json["input_geode_object"],
319-
flask.request.json["id"],
320-
flask.request.json["filename"],
321-
)
322-
313+
data = geode_functions.load_data(flask.request.get_json().get("id"))
323314
vertex_attribute_names = data.vertex_attribute_manager().attribute_names()
324-
325315
return flask.make_response(
326316
{
327317
"vertex_attribute_names": vertex_attribute_names,
@@ -343,14 +333,8 @@ def vertex_attribute_names():
343333
)
344334
def polygon_attribute_names():
345335
utils_functions.validate_request(flask.request, polygon_attribute_names_json)
346-
data = geode_functions.load_data(
347-
flask.request.json["input_geode_object"],
348-
flask.request.json["id"],
349-
flask.request.json["filename"],
350-
)
351-
336+
data = geode_functions.load_data(flask.request.get_json().get("id"))
352337
polygon_attribute_names = data.polygon_attribute_manager().attribute_names()
353-
354338
return flask.make_response(
355339
{
356340
"polygon_attribute_names": polygon_attribute_names,
@@ -372,14 +356,8 @@ def polygon_attribute_names():
372356
)
373357
def polyhedron_attribute_names():
374358
utils_functions.validate_request(flask.request, polyhedron_attribute_names_json)
375-
data = geode_functions.load_data(
376-
flask.request.json["input_geode_object"],
377-
flask.request.json["id"],
378-
flask.request.json["filename"],
379-
)
380-
359+
data = geode_functions.load_data(flask.request.get_json().get("id"))
381360
polyhedron_attribute_names = data.polyhedron_attribute_manager().attribute_names()
382-
383361
return flask.make_response(
384362
{
385363
"polyhedron_attribute_names": polyhedron_attribute_names,

src/opengeodeweb_back/routes/models/blueprint_models.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def uuid_to_flat_index():
2020
utils_functions.validate_request(flask.request, vtm_component_indices_json)
2121

2222
vtm_file_path = geode_functions.data_file_path(
23-
flask.request.json["id"], "viewable.vtm"
23+
flask.request.get_json().get("id"), "viewable.vtm"
2424
)
2525
tree = ET.parse(vtm_file_path)
2626
root = tree.find("vtkMultiBlockDataSet")
@@ -49,12 +49,6 @@ def extract_model_uuids(model):
4949
@routes.route(mesh_components_json["route"], methods=mesh_components_json["methods"])
5050
def extract_uuids_endpoint():
5151
utils_functions.validate_request(flask.request, mesh_components_json)
52-
53-
model = geode_functions.load_data(
54-
flask.request.json["geode_object"],
55-
flask.request.json["id"],
56-
flask.request.json["filename"],
57-
)
58-
52+
model = geode_functions.load_data(flask.request.get_json().get("id"))
5953
uuid_dict = extract_model_uuids(model)
6054
return flask.make_response({"uuid_dict": uuid_dict}, 200)

src/opengeodeweb_back/routes/models/schemas/mesh_components.json

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,10 @@
88
"id": {
99
"type": "string",
1010
"minLength": 1
11-
},
12-
"filename": {
13-
"type": "string",
14-
"minLength": 1
15-
},
16-
"geode_object": {
17-
"type": "string",
18-
"minLength": 1
1911
}
2012
},
2113
"required": [
22-
"id",
23-
"filename",
24-
"geode_object"
14+
"id"
2515
],
2616
"additionalProperties": false
2717
}

src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,12 @@
55
],
66
"type": "object",
77
"properties": {
8-
"input_geode_object": {
9-
"type": "string",
10-
"minLength": 1
11-
},
12-
"filename": {
13-
"type": "string",
14-
"minLength": 1
15-
},
168
"id": {
179
"type": "string",
1810
"minLength": 1
1911
}
2012
},
2113
"required": [
22-
"input_geode_object",
23-
"filename",
2414
"id"
2515
],
2616
"additionalProperties": false

src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,12 @@
55
],
66
"type": "object",
77
"properties": {
8-
"input_geode_object": {
9-
"type": "string",
10-
"minLength": 1
11-
},
12-
"filename": {
13-
"type": "string",
14-
"minLength": 1
15-
},
168
"id": {
179
"type": "string",
1810
"minLength": 1
1911
}
2012
},
2113
"required": [
22-
"input_geode_object",
23-
"filename",
2414
"id"
2515
],
2616
"additionalProperties": false

src/opengeodeweb_back/routes/schemas/texture_coordinates.json

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,13 @@
55
],
66
"type": "object",
77
"properties": {
8-
"input_geode_object": {
9-
"type": "string",
10-
"minLength": 1
11-
},
12-
"filename": {
13-
"type": "string",
14-
"minLength": 1
15-
},
168
"id": {
179
"type": "string",
1810
"minLength": 1
1911
}
2012
},
2113
"required": [
22-
"input_geode_object",
23-
"id",
24-
"filename"
14+
"id"
2515
],
2616
"additionalProperties": false
2717
}

src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,12 @@
55
],
66
"type": "object",
77
"properties": {
8-
"input_geode_object": {
9-
"type": "string",
10-
"minLength": 1
11-
},
12-
"filename": {
13-
"type": "string",
14-
"minLength": 1
15-
},
168
"id": {
179
"type": "string",
1810
"minLength": 1
1911
}
2012
},
2113
"required": [
22-
"input_geode_object",
23-
"filename",
2414
"id"
2515
],
2616
"additionalProperties": false

0 commit comments

Comments
 (0)