Skip to content

Commit e53e05a

Browse files
authored
Merge pull request #100 from Geode-solutions/fix/db-viewer-object
fix(Data): add viewer object
2 parents 1998599 + 6c38e0d commit e53e05a

File tree

9 files changed

+28
-51
lines changed

9 files changed

+28
-51
lines changed

requirements.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ numpy>=2
3838
# matplotlib
3939
packaging==25.0
4040
# via matplotlib
41-
pillow>=11
41+
pillow>=12
4242
# via matplotlib
4343
propcache>=0
4444
# via
@@ -61,4 +61,3 @@ wslink==1.12.4
6161
yarl>=1
6262
# via aiohttp
6363

64-
opengeodeweb-microservice==1.*,>=1.0.4

src/opengeodeweb_viewer/rpc/generic/generic_protocols.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@ def register(self, params):
2626
validate_schema(
2727
params, self.generic_schemas_dict["register"], self.generic_prefix
2828
)
29-
viewer_object = params["viewer_object"]
30-
specific_params = {"id": params["id"]}
29+
data_id = str(params["id"])
30+
specific_params = {"id": data_id}
31+
data = self.get_data(data_id)
32+
viewer_object = str(data["viewer_object"])
3133
if viewer_object == "mesh":
3234
self.mesh_protocols.registerMesh(specific_params)
3335
elif viewer_object == "model":
@@ -38,8 +40,10 @@ def deregister(self, params):
3840
validate_schema(
3941
params, self.generic_schemas_dict["deregister"], self.generic_prefix
4042
)
41-
viewer_object = params["viewer_object"]
42-
specific_params = {"id": params["id"]}
43+
data_id = str(params["id"])
44+
specific_params = {"id": data_id}
45+
data = self.get_data(data_id)
46+
viewer_object = str(data["viewer_object"])
4347
if viewer_object == "mesh":
4448
self.mesh_protocols.deregisterMesh(specific_params)
4549
elif viewer_object == "model":

src/opengeodeweb_viewer/rpc/generic/schemas/deregister.json

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,12 @@
22
"rpc": "deregister",
33
"type": "object",
44
"properties": {
5-
"viewer_object": {
6-
"type": "string",
7-
"minLength": 1,
8-
"enum": [
9-
"mesh",
10-
"model"
11-
]
12-
},
135
"id": {
146
"type": "string",
157
"minLength": 1
168
}
179
},
1810
"required": [
19-
"viewer_object",
2011
"id"
2112
],
2213
"additionalProperties": false

src/opengeodeweb_viewer/rpc/generic/schemas/register.json

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,12 @@
22
"rpc": "register",
33
"type": "object",
44
"properties": {
5-
"viewer_object": {
6-
"type": "string",
7-
"minLength": 1,
8-
"enum": [
9-
"mesh",
10-
"model"
11-
]
12-
},
135
"id": {
146
"type": "string",
157
"minLength": 1
168
}
179
},
1810
"required": [
19-
"viewer_object",
2011
"id"
2112
],
2213
"additionalProperties": false

src/opengeodeweb_viewer/rpc/mesh/mesh_protocols.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,10 @@ def applyTextures(self, mesh_id: str, textures_info: list[dict[str, str]]) -> No
113113
texture_id = tex_info["id"]
114114
texture_name = tex_info["texture_name"]
115115
texture_data = Data.get(texture_id)
116-
if not texture_data or texture_data.geode_object != "RasterImage2D":
116+
if not texture_data:
117+
continue
118+
texture_file = str(texture_data.viewable_file_name)
119+
if not texture_file.lower().endswith(".vti"):
117120
continue
118121
texture_file_path = self.get_data_file_path(texture_id)
119122
texture_reader = vtk.vtkXMLImageDataReader()

src/opengeodeweb_viewer/vtk_protocol.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,8 @@ def get_data(self, data_id: str) -> dict[str, str | list[str] | None]:
4949

5050
return {
5151
"id": data.id,
52-
"native_file_name": data.native_file_name,
5352
"viewable_file_name": data.viewable_file_name,
54-
"geode_object": data.geode_object,
55-
"light_viewable": data.light_viewable,
56-
"input_file": data.input_file,
57-
"additional_files": data.additional_files,
53+
"viewer_object": data.viewer_object,
5854
}
5955
except Exception as e:
6056
print(f"Error fetching data {data_id}: {e}")

src/tests/conftest.py

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -208,31 +208,26 @@ def configure_test_environment() -> Generator[None, None, None]:
208208

209209
@pytest.fixture
210210
def dataset_factory() -> Callable[..., str]:
211-
def create_dataset(
212-
*, id: str, viewable_file_name: str, geode_object: str | None = None
213-
) -> str:
211+
def create_dataset(*, id: str, viewable_file_name: str) -> str:
214212
session = get_session()
215-
if geode_object is None:
216-
geode_object = (
217-
"model" if viewable_file_name.lower().endswith(".vtm") else "mesh"
218-
)
213+
viewer_object = (
214+
"model" if viewable_file_name.lower().endswith(".vtm") else "mesh"
215+
)
219216

220217
row = session.get(Data, id)
221218
if row is None:
222219
session.add(
223220
Data(
224221
id=id,
225-
native_file_name="",
226222
viewable_file_name=viewable_file_name,
227-
geode_object=geode_object,
228-
light_viewable=None,
229-
input_file="",
230-
additional_files=[],
223+
geode_object=viewer_object,
224+
viewer_object=viewer_object,
231225
)
232226
)
233227
else:
234228
row.viewable_file_name = viewable_file_name
235-
row.geode_object = geode_object
229+
row.geode_object = viewer_object
230+
row.viewer_object = viewer_object
236231
session.commit()
237232

238233
data_folder = Path(os.environ["DATA_FOLDER_PATH"]) / id

src/tests/mesh/test_mesh_protocols.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,7 @@ def test_apply_textures(
6363
) -> None:
6464
test_register_mesh(server, dataset_factory)
6565
texture_entry = dataset_factory(
66-
id="987654321",
67-
viewable_file_name="hat_lambert2SG.vti",
68-
geode_object="RasterImage2D",
66+
id="987654321", viewable_file_name="hat_lambert2SG.vti"
6967
)
7068

7169
server.call(

src/tests/test_generic_protocols.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ def test_register_mesh(
77
server: ServerMonitor, dataset_factory: Callable[..., str]
88
) -> None:
99
data_id = "123456789"
10-
dataset_factory(id=data_id, viewable_file_name="hat.vtp", geode_object="mesh")
10+
dataset_factory(id=data_id, viewable_file_name="hat.vtp")
1111

1212
server.call(
1313
VtkGenericView.generic_prefix
1414
+ VtkGenericView.generic_schemas_dict["register"]["rpc"],
15-
[{"id": data_id, "viewer_object": "mesh"}],
15+
[{"id": data_id}],
1616
)
1717
assert server.compare_image(3, "mesh/register.jpeg") is True
1818

@@ -26,7 +26,7 @@ def test_register_model(
2626
server.call(
2727
VtkGenericView.generic_prefix
2828
+ VtkGenericView.generic_schemas_dict["register"]["rpc"],
29-
[{"id": data_id, "viewer_object": "model"}],
29+
[{"id": data_id}],
3030
)
3131
assert server.compare_image(3, "model/register.jpeg") is True
3232

@@ -39,7 +39,7 @@ def test_deregister_mesh(
3939
server.call(
4040
VtkGenericView.generic_prefix
4141
+ VtkGenericView.generic_schemas_dict["deregister"]["rpc"],
42-
[{"id": "123456789", "viewer_object": "mesh"}],
42+
[{"id": "123456789"}],
4343
)
4444
assert server.compare_image(3, "mesh/deregister.jpeg") == True
4545

@@ -52,6 +52,6 @@ def test_deregister_model(
5252
server.call(
5353
VtkGenericView.generic_prefix
5454
+ VtkGenericView.generic_schemas_dict["deregister"]["rpc"],
55-
[{"id": "123456789", "viewer_object": "model"}],
55+
[{"id": "123456789"}],
5656
)
5757
assert server.compare_image(3, "model/deregister.jpeg") == True

0 commit comments

Comments
 (0)