Skip to content

Commit 01159cb

Browse files
committed
save_viewable & create_point foactored in 2 fcts create_geode_object_response & save_geode_object
1 parent 274fc6f commit 01159cb

File tree

1 file changed

+43
-74
lines changed

1 file changed

+43
-74
lines changed

src/opengeodeweb_back/routes/blueprint_routes.py

Lines changed: 43 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -235,66 +235,61 @@ def geode_objects_and_output_extensions():
235235
) as file:
236236
save_viewable_file_json = json.load(file)
237237

238+
def save_geode_object(geode_object, data, folder_absolute_path, id):
239+
saved_native_file_path = geode_functions.save(
240+
geode_object, data, folder_absolute_path, id + "." + data.native_extension()
241+
)
242+
saved_viewable_file_path = geode_functions.save_viewable(
243+
geode_object, data, folder_absolute_path, id
244+
)
245+
saved_light_viewable_file_path = geode_functions.save_light_viewable(
246+
geode_object, data, folder_absolute_path, "light_" + id
247+
)
248+
f = open(saved_light_viewable_file_path, "rb")
249+
binary_light_viewable = f.read()
250+
f.close()
251+
return {
252+
"native_file_name": os.path.basename(saved_native_file_path[0]),
253+
"viewable_file_name": os.path.basename(saved_viewable_file_path[0]),
254+
"binary_light_viewable": str(binary_light_viewable, "utf-8"),
255+
}
256+
257+
def create_geode_object_response(geode_object, data, folder_absolute_path):
258+
generated_id = str(uuid.uuid4()).replace("-", "")
259+
name = data.name()
260+
object_type = geode_functions.get_object_type(geode_object)
261+
262+
saved_files_info = save_geode_object(
263+
geode_object, data, folder_absolute_path, generated_id
264+
)
265+
266+
return {
267+
"name": name,
268+
"native_file_name": saved_files_info["native_file_name"],
269+
"viewable_file_name": saved_files_info["viewable_file_name"],
270+
"id": generated_id,
271+
"object_type": object_type,
272+
"binary_light_viewable": saved_files_info["binary_light_viewable"],
273+
"geode_object": geode_object,
274+
}
238275

239276
@routes.route(
240277
save_viewable_file_json["route"],
241278
methods=save_viewable_file_json["methods"],
242279
)
243280
def save_viewable_file():
281+
utils_functions.validate_request(flask.request, save_viewable_file_json)
244282
UPLOAD_FOLDER = flask.current_app.config["UPLOAD_FOLDER"]
245283
DATA_FOLDER_PATH = flask.current_app.config["DATA_FOLDER_PATH"]
246-
utils_functions.validate_request(flask.request, save_viewable_file_json)
247-
248284
secure_filename = werkzeug.utils.secure_filename(flask.request.json["filename"])
249285
file_path = os.path.abspath(os.path.join(UPLOAD_FOLDER, secure_filename))
250286
data = geode_functions.load(flask.request.json["input_geode_object"], file_path)
251287
generated_id = str(uuid.uuid4()).replace("-", "")
252-
253288
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)
289+
object_type = geode_functions.get_object_type(flask.request.json["input_geode_object"])
288290
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,
291+
create_geode_object_response(flask.request.json["input_geode_object"], data, DATA_FOLDER_PATH),
292+
200,
298293
)
299294

300295

@@ -318,35 +313,9 @@ def create_point():
318313
name = PointSet3D.name()
319314
generated_id = str(uuid.uuid4()).replace("-", "")
320315
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-
saved_light_viewable_file_path = geode_functions.save_light_viewable(
328-
"PointSet3D", PointSet3D, DATA_FOLDER_PATH, "light_" + generated_id
329-
)
330-
331-
f = open(saved_light_viewable_file_path, "rb")
332-
binary_light_viewable = f.read()
333-
f.close()
334-
335-
native_file_name = os.path.basename(saved_native_file_path[0])
336-
viewable_file_name = os.path.basename(saved_viewable_file_path)
337-
338316
return flask.make_response(
339-
{
340-
"viewable_file_name": os.path.basename(saved_viewable_file_path),
341-
"id": generated_id,
342-
"name": name,
343-
"native_file_name": native_file_name,
344-
"viewable_file_name": viewable_file_name,
345-
"object_type": object_type,
346-
"geode_object": "PointSet3D",
347-
"binary_light_viewable": str(binary_light_viewable, "utf-8"),
348-
},
349-
200,
317+
create_geode_object_response("PointSet3D", PointSet3D, DATA_FOLDER_PATH),
318+
200,
350319
)
351320

352321

0 commit comments

Comments
 (0)