OpenGeodeWeb-Back 5.8.4rc1__py3-none-any.whl → 5.8.4rc2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -241,61 +241,16 @@ with open(
241
241
  methods=save_viewable_file_json["methods"],
242
242
  )
243
243
  def save_viewable_file():
244
+ utils_functions.validate_request(flask.request, save_viewable_file_json)
244
245
  UPLOAD_FOLDER = flask.current_app.config["UPLOAD_FOLDER"]
245
246
  DATA_FOLDER_PATH = flask.current_app.config["DATA_FOLDER_PATH"]
246
- utils_functions.validate_request(flask.request, save_viewable_file_json)
247
-
248
247
  secure_filename = werkzeug.utils.secure_filename(flask.request.json["filename"])
249
248
  file_path = os.path.abspath(os.path.join(UPLOAD_FOLDER, secure_filename))
250
249
  data = geode_functions.load(flask.request.json["input_geode_object"], file_path)
251
- generated_id = str(uuid.uuid4()).replace("-", "")
252
-
253
- name = data.name()
254
- native_extension = data.native_extension()
255
-
256
- absolute_native_file_path = os.path.join(
257
- UPLOAD_FOLDER, generated_id + "." + native_extension
258
- )
259
-
260
- saved_viewable_file_path = geode_functions.save_viewable(
261
- flask.request.json["input_geode_object"], data, DATA_FOLDER_PATH, generated_id
262
- )
263
-
264
- saved_light_viewable_file_path = geode_functions.save_light_viewable(
265
- flask.request.json["input_geode_object"],
266
- data,
267
- DATA_FOLDER_PATH,
268
- "light_" + generated_id,
269
- )
270
-
271
- f = open(saved_light_viewable_file_path, "rb")
272
- binary_light_viewable = f.read()
273
- f.close()
274
-
275
- geode_functions.save(
276
- flask.request.json["input_geode_object"],
277
- data,
278
- DATA_FOLDER_PATH,
279
- generated_id + "." + native_extension,
280
- )
281
- os.remove(os.path.join(UPLOAD_FOLDER, secure_filename))
282
- object_type = geode_functions.get_object_type(
283
- flask.request.json["input_geode_object"]
284
- )
285
-
286
- native_file_name = os.path.basename(absolute_native_file_path)
287
- viewable_file_name = os.path.basename(saved_viewable_file_path)
288
- return flask.make_response(
289
- {
290
- "name": name,
291
- "native_file_name": native_file_name,
292
- "viewable_file_name": viewable_file_name,
293
- "id": generated_id,
294
- "object_type": object_type,
295
- "binary_light_viewable": str(binary_light_viewable, "utf-8"),
296
- },
297
- 200,
250
+ response_data = utils_functions.create_response_with_binary_light_viewable(
251
+ flask.request.json["input_geode_object"], data, DATA_FOLDER_PATH
298
252
  )
253
+ return flask.jsonify(response_data), 200
299
254
 
300
255
 
301
256
  with open(os.path.join(schemas, "create_point.json"), "r") as file:
@@ -315,29 +270,10 @@ def create_point():
315
270
  builder = geode_functions.create_builder("PointSet3D", PointSet3D)
316
271
  builder.create_point(opengeode.Point3D([x, y, z]))
317
272
  builder.set_name(title)
318
- name = PointSet3D.name()
319
- generated_id = str(uuid.uuid4()).replace("-", "")
320
- object_type = geode_functions.get_object_type("PointSet3D")
321
- saved_native_file_path = geode_functions.save(
322
- "PointSet3D", PointSet3D, DATA_FOLDER_PATH, generated_id + ".og_pts3d"
323
- )
324
- saved_viewable_file_path = geode_functions.save_viewable(
325
- "PointSet3D", PointSet3D, DATA_FOLDER_PATH, generated_id
326
- )
327
-
328
- native_file_name = os.path.basename(saved_native_file_path[0])
329
- viewable_file_name = os.path.basename(saved_viewable_file_path)
330
-
331
273
  return flask.make_response(
332
- {
333
- "viewable_file_name": os.path.basename(saved_viewable_file_path),
334
- "id": generated_id,
335
- "name": name,
336
- "native_file_name": native_file_name,
337
- "viewable_file_name": viewable_file_name,
338
- "object_type": object_type,
339
- "geode_object": "PointSet3D",
340
- },
274
+ utils_functions.create_response_with_binary_light_viewable(
275
+ "PointSet3D", PointSet3D, DATA_FOLDER_PATH
276
+ ),
341
277
  200,
342
278
  )
343
279
 
@@ -2,6 +2,7 @@
2
2
  import os
3
3
  import threading
4
4
  import time
5
+ import uuid
5
6
  import zipfile
6
7
 
7
8
  # Third party imports
@@ -10,6 +11,7 @@ import fastjsonschema
10
11
  import importlib.metadata as metadata
11
12
 
12
13
  # Local application imports
14
+ from . import geode_functions
13
15
 
14
16
 
15
17
  def increment_request_counter(current_app):
@@ -139,3 +141,49 @@ def handle_exception(e):
139
141
  )
140
142
  response.content_type = "application/json"
141
143
  return response
144
+
145
+
146
+ def save_native_viewable_binary_file_names(geode_object, data, folder_absolute_path):
147
+ generated_id = str(uuid.uuid4()).replace("-", "")
148
+ saved_native_file_path = geode_functions.save(
149
+ geode_object,
150
+ data,
151
+ folder_absolute_path,
152
+ generated_id + "." + data.native_extension(),
153
+ )
154
+ saved_viewable_file_path = geode_functions.save_viewable(
155
+ geode_object, data, folder_absolute_path, generated_id
156
+ )
157
+ saved_light_viewable_file_path = geode_functions.save_light_viewable(
158
+ geode_object, data, folder_absolute_path, "light_" + generated_id
159
+ )
160
+ f = open(saved_light_viewable_file_path, "rb")
161
+ binary_light_viewable = f.read()
162
+ 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
+ )
180
+
181
+ return {
182
+ "name": name,
183
+ "native_file_name": native_file_name,
184
+ "viewable_file_name": viewable_file_name,
185
+ "id": generated_id,
186
+ "object_type": object_type,
187
+ "binary_light_viewable": binary_light_viewable,
188
+ "geode_object": geode_object,
189
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 5.8.4rc1
3
+ Version: 5.8.4rc2
4
4
  Summary: OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
5
5
  Author-email: Geode-solutions <team-web@geode-solutions.com>
6
6
  Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Back
@@ -3,8 +3,8 @@ opengeodeweb_back/app_config.py,sha256=gJfYxDJOa_PYLqjqgdXacp3W3F109uujE9LGPvzHO
3
3
  opengeodeweb_back/geode_functions.py,sha256=EPAM6pw9QwZfoeZjOxycFTKUANw6pdeXr2q3vsnPxt8,9121
4
4
  opengeodeweb_back/geode_objects.py,sha256=13A9FTGugiA9ClSeYkBiCu5QGzm93nm8YJQwiWB4nNw,25995
5
5
  opengeodeweb_back/test_utils.py,sha256=18AbRW9-tfKkPcmRGilTTHXI7S3armYyV7Vdy5UvUKM,794
6
- opengeodeweb_back/utils_functions.py,sha256=0STD6GwC81casYMbvAgAfZmJZzzt8EanJVGHZgWdYXg,4046
7
- opengeodeweb_back/routes/blueprint_routes.py,sha256=dd5ccR6DY4GQGhc9oE3KtLj2YriaVFd1oTVizrnPp1g,14422
6
+ opengeodeweb_back/utils_functions.py,sha256=fghIbadgRBCmjiHQ6h_Sh8_96cznt2FlqNcQEpfYyKE,5732
7
+ opengeodeweb_back/routes/blueprint_routes.py,sha256=o1G6gEeRcQUDPWy5OxBorFMB-bpwjuJr0yL4Ex_Lg24,12341
8
8
  opengeodeweb_back/routes/models/blueprint_models.py,sha256=F5Rx1UpAII2oz75byx4UWvEWrrwY38xO5rsy6B9_AeM,2321
9
9
  opengeodeweb_back/routes/models/schemas/mesh_components.json,sha256=3hgNqkxKDv691JGgjgMoqI_WgH2m7AtEFfjsOIqAz5Y,295
10
10
  opengeodeweb_back/routes/models/schemas/vtm_component_indices.json,sha256=0km8gzawPj-eFodhaGzAgNZjAEOl4wLy24f_Bs3pBlw,217
@@ -22,8 +22,8 @@ opengeodeweb_back/routes/schemas/save_viewable_file.json,sha256=pvvEdaC7bNASPMrl
22
22
  opengeodeweb_back/routes/schemas/texture_coordinates.json,sha256=m0EqxlvKojXVxK5Csucodu3rq1YMVJPwXJN_Wreb3qc,355
23
23
  opengeodeweb_back/routes/schemas/upload_file.json,sha256=LJ3U3L5ApKuQDVFIpVT_y2alq4HW_suTvZ3HUucNbhg,219
24
24
  opengeodeweb_back/routes/schemas/vertex_attribute_names.json,sha256=bya9KGtTmHFWjD-ur0_0UAY2yf3KkMeuNrk6E1UkjLM,358
25
- opengeodeweb_back-5.8.4rc1.dist-info/licenses/LICENSE,sha256=LoTB-aqQvzTGxoTRXNnhNV0LKiqdk2bQv6MB34l8zkI,1079
26
- opengeodeweb_back-5.8.4rc1.dist-info/METADATA,sha256=AIhUAVtHI1uxXJCFfowdhvr2769bHMZlbegGsrBAdcg,3036
27
- opengeodeweb_back-5.8.4rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
28
- opengeodeweb_back-5.8.4rc1.dist-info/top_level.txt,sha256=tN1FZeLIVBrdja2-pbmhg5-tK-JILmmT9OeIBnhlUrQ,18
29
- opengeodeweb_back-5.8.4rc1.dist-info/RECORD,,
25
+ opengeodeweb_back-5.8.4rc2.dist-info/licenses/LICENSE,sha256=LoTB-aqQvzTGxoTRXNnhNV0LKiqdk2bQv6MB34l8zkI,1079
26
+ opengeodeweb_back-5.8.4rc2.dist-info/METADATA,sha256=AvDrg_aRYZnCVsh58dzIxh_iEd-0PYvSGtxTcda7eJ4,3036
27
+ opengeodeweb_back-5.8.4rc2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
28
+ opengeodeweb_back-5.8.4rc2.dist-info/top_level.txt,sha256=tN1FZeLIVBrdja2-pbmhg5-tK-JILmmT9OeIBnhlUrQ,18
29
+ opengeodeweb_back-5.8.4rc2.dist-info/RECORD,,