Skip to content

Commit c41ab44

Browse files
committed
rmv upload_file replace if exist function
mandatory_files and additional_files added to array still 11 errors
1 parent d13008c commit c41ab44

File tree

7 files changed

+70
-163
lines changed

7 files changed

+70
-163
lines changed

src/opengeodeweb_back/geode_functions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ def output_factory(geode_object: str):
2828
return geode_object_value(geode_object)["output_factory"]
2929

3030

31-
def missing_files(geode_object: str, file_absolute_path: str):
32-
return geode_object_value(geode_object)["missing_files"](file_absolute_path)
31+
def additional_files(geode_object: str, file_absolute_path: str):
32+
return geode_object_value(geode_object)["additional_files"](file_absolute_path)
3333

3434

3535
def is_loadable(geode_object: str, file_absolute_path: str):

src/opengeodeweb_back/geode_objects.py

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def geode_objects_dict():
2525
"class": og.BRep,
2626
"input_factory": og.BRepInputFactory,
2727
"output_factory": og.BRepOutputFactory,
28-
"missing_files": og.brep_additional_files,
28+
"additional_files": og.brep_additional_files,
2929
"is_loadable": og.is_brep_loadable,
3030
"load": og.load_brep,
3131
"is_saveable": og.is_brep_saveable,
@@ -48,7 +48,7 @@ def geode_objects_dict():
4848
"class": og_gs.CrossSection,
4949
"input_factory": og_gs.CrossSectionInputFactory,
5050
"output_factory": og_gs.CrossSectionOutputFactory,
51-
"missing_files": og_gs.section_additional_files,
51+
"additional_files": og_gs.cross_section_additional_files,
5252
"is_loadable": og_gs.is_cross_section_loadable,
5353
"load": og_gs.load_cross_section,
5454
"is_saveable": og_gs.is_cross_section_saveable,
@@ -70,7 +70,7 @@ def geode_objects_dict():
7070
"class": og.EdgedCurve2D,
7171
"input_factory": og.EdgedCurveInputFactory2D,
7272
"output_factory": og.EdgedCurveOutputFactory2D,
73-
"missing_files": og.edged_curve_additional_files2D,
73+
"additional_files": og.edged_curve_additional_files2D,
7474
"is_loadable": og.is_edged_curve_loadable2D,
7575
"load": og.load_edged_curve2D,
7676
"is_saveable": og.is_edged_curve_saveable2D,
@@ -93,7 +93,7 @@ def geode_objects_dict():
9393
"class": og.EdgedCurve3D,
9494
"input_factory": og.EdgedCurveInputFactory3D,
9595
"output_factory": og.EdgedCurveOutputFactory3D,
96-
"missing_files": og.edged_curve_additional_files3D,
96+
"additional_files": og.edged_curve_additional_files3D,
9797
"is_loadable": og.is_edged_curve_loadable3D,
9898
"load": og.load_edged_curve3D,
9999
"is_saveable": og.is_edged_curve_saveable3D,
@@ -116,7 +116,7 @@ def geode_objects_dict():
116116
"class": og.Graph,
117117
"input_factory": og.GraphInputFactory,
118118
"output_factory": og.GraphOutputFactory,
119-
"missing_files": og.graph_additional_files,
119+
"additional_files": og.graph_additional_files,
120120
"is_loadable": og.is_graph_loadable,
121121
"load": og.load_graph,
122122
"is_saveable": og.is_graph_saveable,
@@ -130,7 +130,7 @@ def geode_objects_dict():
130130
"class": og.HybridSolid3D,
131131
"input_factory": og.HybridSolidInputFactory3D,
132132
"output_factory": og.HybridSolidOutputFactory3D,
133-
"missing_files": og.hybrid_solid_additional_files3D,
133+
"additional_files": og.hybrid_solid_additional_files3D,
134134
"is_loadable": og.is_hybrid_solid_loadable3D,
135135
"load": og.load_hybrid_solid3D,
136136
"is_saveable": og.is_hybrid_solid_saveable3D,
@@ -154,7 +154,7 @@ def geode_objects_dict():
154154
"class": og_gs.ImplicitCrossSection,
155155
"input_factory": og_gs.ImplicitCrossSectionInputFactory,
156156
"output_factory": og_gs.ImplicitCrossSectionOutputFactory,
157-
"missing_files": og_gs.implicit_cross_section_additional_files,
157+
"additional_files": og_gs.implicit_cross_section_additional_files,
158158
"is_loadable": og_gs.is_implicit_cross_section_loadable,
159159
"load": og_gs.load_implicit_cross_section,
160160
"is_saveable": og_gs.is_implicit_cross_section_saveable,
@@ -177,7 +177,7 @@ def geode_objects_dict():
177177
"class": og_gs.ImplicitStructuralModel,
178178
"input_factory": og_gs.ImplicitStructuralModelInputFactory,
179179
"output_factory": og_gs.ImplicitStructuralModelOutputFactory,
180-
"missing_files": og_gs.implicit_structural_model_additional_files,
180+
"additional_files": og_gs.implicit_structural_model_additional_files,
181181
"is_loadable": og_gs.is_implicit_structural_model_loadable,
182182
"load": og_gs.load_implicit_structural_model,
183183
"is_saveable": og_gs.is_implicit_structural_model_saveable,
@@ -199,7 +199,7 @@ def geode_objects_dict():
199199
"class": og.LightRegularGrid2D,
200200
"input_factory": og.LightRegularGridInputFactory2D,
201201
"output_factory": og.LightRegularGridOutputFactory2D,
202-
"missing_files": og.light_regular_grid_additional_files2D,
202+
"additional_files": og.light_regular_grid_additional_files2D,
203203
"is_loadable": og.is_light_regular_grid_loadable2D,
204204
"load": og.load_light_regular_grid2D,
205205
"is_saveable": og.is_light_regular_grid_saveable2D,
@@ -215,7 +215,7 @@ def geode_objects_dict():
215215
"class": og.LightRegularGrid3D,
216216
"input_factory": og.LightRegularGridInputFactory3D,
217217
"output_factory": og.LightRegularGridOutputFactory3D,
218-
"missing_files": og.light_regular_grid_additional_files3D,
218+
"additional_files": og.light_regular_grid_additional_files3D,
219219
"is_loadable": og.is_light_regular_grid_loadable3D,
220220
"load": og.load_light_regular_grid3D,
221221
"is_saveable": og.is_light_regular_grid_saveable3D,
@@ -231,7 +231,7 @@ def geode_objects_dict():
231231
"class": og.PointSet2D,
232232
"input_factory": og.PointSetInputFactory2D,
233233
"output_factory": og.PointSetOutputFactory2D,
234-
"missing_files": og.point_set_additional_files2D,
234+
"additional_files": og.point_set_additional_files2D,
235235
"is_loadable": og.is_point_set_loadable2D,
236236
"load": og.load_point_set2D,
237237
"is_saveable": og.is_point_set_saveable2D,
@@ -254,7 +254,7 @@ def geode_objects_dict():
254254
"class": og.PointSet3D,
255255
"input_factory": og.PointSetInputFactory3D,
256256
"output_factory": og.PointSetOutputFactory3D,
257-
"missing_files": og.point_set_additional_files3D,
257+
"additional_files": og.point_set_additional_files3D,
258258
"is_loadable": og.is_point_set_loadable3D,
259259
"load": og.load_point_set3D,
260260
"is_saveable": og.is_point_set_saveable3D,
@@ -277,7 +277,7 @@ def geode_objects_dict():
277277
"class": og.PolygonalSurface2D,
278278
"input_factory": og.PolygonalSurfaceInputFactory2D,
279279
"output_factory": og.PolygonalSurfaceOutputFactory2D,
280-
"missing_files": og.polygonal_surface_additional_files2D,
280+
"additional_files": og.polygonal_surface_additional_files2D,
281281
"is_loadable": og.is_polygonal_surface_loadable2D,
282282
"load": og.load_polygonal_surface2D,
283283
"is_saveable": og.is_polygonal_surface_saveable2D,
@@ -300,7 +300,7 @@ def geode_objects_dict():
300300
"class": og.PolygonalSurface3D,
301301
"input_factory": og.PolygonalSurfaceInputFactory3D,
302302
"output_factory": og.PolygonalSurfaceOutputFactory3D,
303-
"missing_files": og.polygonal_surface_additional_files3D,
303+
"additional_files": og.polygonal_surface_additional_files3D,
304304
"is_loadable": og.is_polygonal_surface_loadable3D,
305305
"load": og.load_polygonal_surface3D,
306306
"is_saveable": og.is_polygonal_surface_saveable3D,
@@ -323,7 +323,7 @@ def geode_objects_dict():
323323
"class": og.PolyhedralSolid3D,
324324
"input_factory": og.PolyhedralSolidInputFactory3D,
325325
"output_factory": og.PolyhedralSolidOutputFactory3D,
326-
"missing_files": og.polyhedral_solid_additional_files3D,
326+
"additional_files": og.polyhedral_solid_additional_files3D,
327327
"is_loadable": og.is_polyhedral_solid_loadable3D,
328328
"load": og.load_polyhedral_solid3D,
329329
"is_saveable": og.is_polyhedral_solid_saveable3D,
@@ -346,7 +346,7 @@ def geode_objects_dict():
346346
"class": og.RasterImage2D,
347347
"input_factory": og.RasterImageInputFactory2D,
348348
"output_factory": og.RasterImageOutputFactory2D,
349-
"missing_files": og.raster_image_additional_files2D,
349+
"additional_files": og.raster_image_additional_files2D,
350350
"is_loadable": og.is_raster_image_loadable2D,
351351
"load": og.load_raster_image2D,
352352
"is_saveable": og.is_raster_image_saveable2D,
@@ -360,7 +360,7 @@ def geode_objects_dict():
360360
"class": og.RasterImage3D,
361361
"input_factory": og.RasterImageInputFactory3D,
362362
"output_factory": og.RasterImageOutputFactory3D,
363-
"missing_files": og.raster_image_additional_files3D,
363+
"additional_files": og.raster_image_additional_files3D,
364364
"is_loadable": og.is_raster_image_loadable3D,
365365
"load": og.load_raster_image3D,
366366
"is_saveable": og.is_raster_image_saveable3D,
@@ -374,7 +374,7 @@ def geode_objects_dict():
374374
"class": og.RegularGrid2D,
375375
"input_factory": og.RegularGridInputFactory2D,
376376
"output_factory": og.RegularGridOutputFactory2D,
377-
"missing_files": og.light_regular_grid_additional_files2D,
377+
"additional_files": og.light_regular_grid_additional_files2D,
378378
"is_loadable": og.is_regular_grid_loadable2D,
379379
"load": og.load_regular_grid2D,
380380
"is_saveable": og.is_regular_grid_saveable2D,
@@ -396,7 +396,7 @@ def geode_objects_dict():
396396
"class": og.RegularGrid3D,
397397
"input_factory": og.RegularGridInputFactory3D,
398398
"output_factory": og.RegularGridOutputFactory3D,
399-
"missing_files": og.light_regular_grid_additional_files3D,
399+
"additional_files": og.light_regular_grid_additional_files3D,
400400
"is_loadable": og.is_regular_grid_loadable3D,
401401
"load": og.load_regular_grid3D,
402402
"is_saveable": og.is_regular_grid_saveable3D,
@@ -418,7 +418,7 @@ def geode_objects_dict():
418418
"class": og.Section,
419419
"input_factory": og.SectionInputFactory,
420420
"output_factory": og.SectionOutputFactory,
421-
"missing_files": og.section_additional_files,
421+
"additional_files": og.section_additional_files,
422422
"is_loadable": og.is_section_loadable,
423423
"load": og.load_section,
424424
"is_saveable": og.is_section_saveable,
@@ -441,7 +441,7 @@ def geode_objects_dict():
441441
"class": og_gs.StructuralModel,
442442
"input_factory": og_gs.StructuralModelInputFactory,
443443
"output_factory": og_gs.StructuralModelOutputFactory,
444-
"missing_files": og_gs.structural_model_additional_files,
444+
"additional_files": og_gs.structural_model_additional_files,
445445
"is_loadable": og_gs.is_structural_model_loadable,
446446
"load": og_gs.load_structural_model,
447447
"is_saveable": og_gs.is_structural_model_saveable,
@@ -463,7 +463,7 @@ def geode_objects_dict():
463463
"class": og.TetrahedralSolid3D,
464464
"input_factory": og.TetrahedralSolidInputFactory3D,
465465
"output_factory": og.TetrahedralSolidOutputFactory3D,
466-
"missing_files": og.tetrahedral_solid_additional_files3D,
466+
"additional_files": og.tetrahedral_solid_additional_files3D,
467467
"is_loadable": og.is_tetrahedral_solid_loadable3D,
468468
"load": og.load_tetrahedral_solid3D,
469469
"is_saveable": og.is_tetrahedral_solid_saveable3D,
@@ -486,7 +486,7 @@ def geode_objects_dict():
486486
"class": og.TriangulatedSurface2D,
487487
"input_factory": og.TriangulatedSurfaceInputFactory2D,
488488
"output_factory": og.TriangulatedSurfaceOutputFactory2D,
489-
"missing_files": og.triangulated_surface_additional_files2D,
489+
"additional_files": og.triangulated_surface_additional_files2D,
490490
"is_loadable": og.is_triangulated_surface_loadable2D,
491491
"load": og.load_triangulated_surface2D,
492492
"is_saveable": og.is_triangulated_surface_saveable2D,
@@ -509,7 +509,7 @@ def geode_objects_dict():
509509
"class": og.TriangulatedSurface3D,
510510
"input_factory": og.TriangulatedSurfaceInputFactory3D,
511511
"output_factory": og.TriangulatedSurfaceOutputFactory3D,
512-
"missing_files": og.triangulated_surface_additional_files3D,
512+
"additional_files": og.triangulated_surface_additional_files3D,
513513
"is_loadable": og.is_triangulated_surface_loadable3D,
514514
"load": og.load_triangulated_surface3D,
515515
"is_saveable": og.is_triangulated_surface_saveable3D,
@@ -532,7 +532,7 @@ def geode_objects_dict():
532532
"class": og.VertexSet,
533533
"input_factory": og.VertexSetInputFactory,
534534
"output_factory": og.VertexSetOutputFactory,
535-
"missing_files": og.vertex_set_additional_files,
535+
"additional_files": og.vertex_set_additional_files,
536536
"is_loadable": og.is_vertex_set_loadable,
537537
"load": og.load_vertex_set,
538538
"is_saveable": og.is_vertex_set_saveable,

src/opengeodeweb_back/routes/blueprint_routes.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -140,25 +140,30 @@ def allowed_objects():
140140
methods=missing_files_json["methods"],
141141
)
142142
def missing_files():
143+
UPLOAD_FOLDER = flask.current_app.config["UPLOAD_FOLDER"]
143144
utils_functions.validate_request(flask.request, missing_files_json)
144-
file_path = geode_functions.upload_file_path(flask.request.json["filename"])
145145
missing_files = geode_functions.missing_files(
146146
flask.request.json["input_geode_object"],
147-
file_path,
147+
os.path.join(UPLOAD_FOLDER, flask.request.json["filename"]),
148148
)
149149
has_missing_files = missing_files.has_missing_files()
150150

151151
mandatory_files = []
152-
for mandatory_file in missing_files.mandatory_files:
153-
mandatory_files.append(os.path.basename(mandatory_file))
152+
for mf in missing_files.mandatory_files:
153+
mandatory_files.append({
154+
"filename": os.path.basename(mf.path),
155+
"is_missing": mf.is_missing,
156+
})
154157

155158
additional_files = []
156-
for additional_file in missing_files.additional_files:
157-
additional_files.append(os.path.basename(additional_file))
159+
for af in missing_files.additional_files:
160+
additional_files.append({
161+
"filename": os.path.basename(af.path),
162+
"is_missing": af.is_missing,
163+
})
158164

159165
return flask.make_response(
160166
{
161-
"has_missing_files": has_missing_files,
162167
"mandatory_files": mandatory_files,
163168
"additional_files": additional_files,
164169
},

src/opengeodeweb_back/routes/schemas/upload_file.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,7 @@
99
"filename": {
1010
"type": "string",
1111
"minLength": 1
12-
},
13-
"replace_if_exists": {
14-
"type": "boolean",
15-
"default": false
1612
}
1713
},
18-
"required": ["filename"],
1914
"additionalProperties": false
2015
}

tests/conftest.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,8 @@
1313

1414
@pytest.fixture(scope="session", autouse=True)
1515
def copy_data():
16-
# Nettoyer les dossiers de test
1716
shutil.rmtree("./data", ignore_errors=True)
18-
shutil.rmtree("./uploads", ignore_errors=True)
19-
20-
# Copier les données de test
2117
shutil.copytree("./tests/data/", f"./data/{TEST_ID}/", dirs_exist_ok=True)
22-
23-
# Créer le dossier uploads pour les tests
24-
os.makedirs("./uploads", exist_ok=True)
2518

2619

2720
@pytest.fixture
@@ -44,4 +37,4 @@ def app_context():
4437

4538
@pytest.fixture
4639
def test_id():
47-
return TEST_ID
40+
return TEST_ID

0 commit comments

Comments
 (0)