OpenGeodeWeb-Back 6.5.2rc8__tar.gz → 6.6.0rc1__tar.gz

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.
Files changed (103) hide show
  1. {opengeodeweb_back-6.5.2rc8/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-6.6.0rc1}/PKG-INFO +2 -2
  2. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/pyproject.toml +1 -1
  3. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/requirements.txt +1 -1
  4. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1/src/OpenGeodeWeb_Back.egg-info}/PKG-INFO +2 -2
  5. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +2 -2
  6. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/OpenGeodeWeb_Back.egg-info/requires.txt +1 -1
  7. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/create/blueprint_create.py +9 -9
  8. opengeodeweb_back-6.6.0rc1/src/opengeodeweb_back/routes/create/schemas/__init__.py +1 -0
  9. opengeodeweb_back-6.6.0rc1/src/opengeodeweb_back/routes/create/schemas/point_set.json +27 -0
  10. opengeodeweb_back-6.5.2rc8/src/opengeodeweb_back/routes/create/schemas/point.py → opengeodeweb_back-6.6.0rc1/src/opengeodeweb_back/routes/create/schemas/point_set.py +10 -1
  11. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/tests/test_create_routes.py +26 -9
  12. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/tests/test_routes.py +2 -4
  13. opengeodeweb_back-6.5.2rc8/src/opengeodeweb_back/routes/create/schemas/__init__.py +0 -1
  14. opengeodeweb_back-6.5.2rc8/src/opengeodeweb_back/routes/create/schemas/point.json +0 -22
  15. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/LICENSE +0 -0
  16. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/README.md +0 -0
  17. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/setup.cfg +0 -0
  18. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
  19. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +0 -0
  20. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
  21. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/__init__.py +0 -0
  22. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/app.py +0 -0
  23. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/app_config.py +0 -0
  24. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_functions.py +0 -0
  25. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/__init__.py +0 -0
  26. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_brep.py +0 -0
  27. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_cross_section.py +0 -0
  28. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_edged_curve2d.py +0 -0
  29. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_edged_curve3d.py +0 -0
  30. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_graph.py +0 -0
  31. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_grid2d.py +0 -0
  32. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_grid3d.py +0 -0
  33. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_hybrid_solid3d.py +0 -0
  34. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_implicit_cross_section.py +0 -0
  35. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_implicit_structural_model.py +0 -0
  36. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid2d.py +0 -0
  37. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid3d.py +0 -0
  38. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_mesh.py +0 -0
  39. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_model.py +0 -0
  40. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_object.py +0 -0
  41. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_point_set2d.py +0 -0
  42. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_point_set3d.py +0 -0
  43. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface2d.py +0 -0
  44. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface3d.py +0 -0
  45. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_polyhedral_solid3d.py +0 -0
  46. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_raster_image2d.py +0 -0
  47. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_raster_image3d.py +0 -0
  48. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_regular_grid2d.py +0 -0
  49. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_regular_grid3d.py +0 -0
  50. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_section.py +0 -0
  51. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_solid_mesh3d.py +0 -0
  52. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_structural_model.py +0 -0
  53. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_surface_mesh2d.py +0 -0
  54. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_surface_mesh3d.py +0 -0
  55. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_tetrahedral_solid3d.py +0 -0
  56. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface2d.py +0 -0
  57. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface3d.py +0 -0
  58. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/geode_objects/geode_vertex_set.py +0 -0
  59. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/py.typed +0 -0
  60. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/blueprint_routes.py +0 -0
  61. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/__init__.py +0 -0
  62. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
  63. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_files.py +0 -0
  64. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
  65. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/allowed_objects.py +0 -0
  66. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.json +0 -0
  67. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.py +0 -0
  68. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.json +0 -0
  69. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.py +0 -0
  70. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/export_project.json +0 -0
  71. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/export_project.py +0 -0
  72. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.json +0 -0
  73. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.py +0 -0
  74. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
  75. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py +0 -0
  76. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
  77. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py +0 -0
  78. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/import_project.json +0 -0
  79. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/import_project.py +0 -0
  80. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/inspect_file.json +0 -0
  81. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/inspect_file.py +0 -0
  82. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/kill.json +0 -0
  83. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/kill.py +0 -0
  84. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
  85. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/missing_files.py +0 -0
  86. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
  87. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/ping.py +0 -0
  88. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
  89. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.py +0 -0
  90. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
  91. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py +0 -0
  92. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
  93. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/save_viewable_file.py +0 -0
  94. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
  95. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/texture_coordinates.py +0 -0
  96. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
  97. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/upload_file.py +0 -0
  98. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
  99. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.py +0 -0
  100. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/test_utils.py +0 -0
  101. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/src/opengeodeweb_back/utils_functions.py +0 -0
  102. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/tests/test_geode_functions.py +0 -0
  103. {opengeodeweb_back-6.5.2rc8 → opengeodeweb_back-6.6.0rc1}/tests/test_utils_functions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 6.5.2rc8
3
+ Version: 6.6.0rc1
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
@@ -27,7 +27,7 @@ Requires-Dist: opengeode-geosciencesio==5.8.11
27
27
  Requires-Dist: opengeode-inspector==6.8.18
28
28
  Requires-Dist: opengeode-io==7.4.9
29
29
  Requires-Dist: werkzeug==3.1.2
30
- Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.1
30
+ Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.3
31
31
  Dynamic: license-file
32
32
 
33
33
  <h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "OpenGeodeWeb-Back"
7
- version = "6.5.2-rc.8"
7
+ version = "6.6.0-rc.1"
8
8
  dynamic = ["dependencies"]
9
9
  authors = [{ name = "Geode-solutions", email = "team-web@geode-solutions.com" }]
10
10
  description = "OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem"
@@ -60,4 +60,4 @@ werkzeug==3.1.2
60
60
  # flask
61
61
  # flask-cors
62
62
 
63
- opengeodeweb-microservice==1.*,>=1.1.1
63
+ opengeodeweb-microservice==1.*,>=1.1.3
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 6.5.2rc8
3
+ Version: 6.6.0rc1
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
@@ -27,7 +27,7 @@ Requires-Dist: opengeode-geosciencesio==5.8.11
27
27
  Requires-Dist: opengeode-inspector==6.8.18
28
28
  Requires-Dist: opengeode-io==7.4.9
29
29
  Requires-Dist: werkzeug==3.1.2
30
- Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.1
30
+ Requires-Dist: opengeodeweb-microservice==1.*,>=1.1.3
31
31
  Dynamic: license-file
32
32
 
33
33
  <h1 align="center">OpenGeodeWeb-Back<sup><i>by Geode-solutions</i></sup></h1>
@@ -52,8 +52,8 @@ src/opengeodeweb_back/geode_objects/geode_vertex_set.py
52
52
  src/opengeodeweb_back/routes/blueprint_routes.py
53
53
  src/opengeodeweb_back/routes/create/blueprint_create.py
54
54
  src/opengeodeweb_back/routes/create/schemas/__init__.py
55
- src/opengeodeweb_back/routes/create/schemas/point.json
56
- src/opengeodeweb_back/routes/create/schemas/point.py
55
+ src/opengeodeweb_back/routes/create/schemas/point_set.json
56
+ src/opengeodeweb_back/routes/create/schemas/point_set.py
57
57
  src/opengeodeweb_back/routes/schemas/__init__.py
58
58
  src/opengeodeweb_back/routes/schemas/allowed_files.json
59
59
  src/opengeodeweb_back/routes/schemas/allowed_files.py
@@ -14,4 +14,4 @@ opengeode-geosciencesio==5.8.11
14
14
  opengeode-inspector==6.8.18
15
15
  opengeode-io==7.4.9
16
16
  werkzeug==3.1.2
17
- opengeodeweb-microservice==1.*,>=1.1.1
17
+ opengeodeweb-microservice==1.*,>=1.1.3
@@ -17,21 +17,21 @@ schemas_dict = get_schemas_dict(os.path.join(os.path.dirname(__file__), "schemas
17
17
 
18
18
 
19
19
  @routes.route(
20
- schemas_dict["point"]["route"],
21
- methods=schemas_dict["point"]["methods"],
20
+ schemas_dict["point_set"]["route"],
21
+ methods=schemas_dict["point_set"]["methods"],
22
22
  )
23
- def point() -> flask.Response:
24
- """Endpoint to create a single point in 3D space."""
25
- json_data = utils_functions.validate_request(flask.request, schemas_dict["point"])
26
- params = schemas.Point.from_dict(json_data)
23
+ def point_set() -> flask.Response:
24
+ json_data = utils_functions.validate_request(
25
+ flask.request, schemas_dict["point_set"]
26
+ )
27
+ params = schemas.PointSet.from_dict(json_data)
27
28
 
28
- # Create the point
29
29
  pointset = GeodePointSet3D()
30
30
  builder = pointset.builder()
31
31
  builder.set_name(params.name)
32
- builder.create_point(opengeode.Point3D([params.x, params.y, params.z]))
32
+ for point in params.points:
33
+ builder.create_point(opengeode.Point3D([point.x, point.y, point.z]))
33
34
 
34
- # Save and get info
35
35
  result = utils_functions.generate_native_viewable_and_light_viewable_from_object(
36
36
  pointset
37
37
  )
@@ -0,0 +1,27 @@
1
+ {
2
+ "route": "/point_set",
3
+ "methods": ["POST"],
4
+ "type": "object",
5
+ "properties": {
6
+ "name": {
7
+ "type": "string",
8
+ "minLength": 1
9
+ },
10
+ "points": {
11
+ "type": "array",
12
+ "items": {
13
+ "type": "object",
14
+ "properties": {
15
+ "x": { "type": "number" },
16
+ "y": { "type": "number" },
17
+ "z": { "type": "number" }
18
+ },
19
+ "required": ["x", "y", "z"],
20
+ "additionalProperties": false
21
+ },
22
+ "minItems": 1
23
+ }
24
+ },
25
+ "required": ["name", "points"],
26
+ "additionalProperties": false
27
+ }
@@ -1,5 +1,6 @@
1
1
  from dataclasses_json import DataClassJsonMixin
2
2
  from dataclasses import dataclass
3
+ from typing import List
3
4
 
4
5
 
5
6
  @dataclass
@@ -7,7 +8,15 @@ class Point(DataClassJsonMixin):
7
8
  def __post_init__(self) -> None:
8
9
  print(self, flush=True)
9
10
 
10
- name: str
11
11
  x: float
12
12
  y: float
13
13
  z: float
14
+
15
+
16
+ @dataclass
17
+ class PointSet(DataClassJsonMixin):
18
+ def __post_init__(self) -> None:
19
+ print(self, flush=True)
20
+
21
+ name: str
22
+ points: List[Point]
@@ -1,5 +1,5 @@
1
1
  # Standard library imports
2
- import uuid
2
+ import copy
3
3
 
4
4
  # Third party imports
5
5
  import pytest
@@ -11,12 +11,12 @@ from opengeodeweb_back import test_utils
11
11
 
12
12
  @pytest.fixture
13
13
  def point_data() -> test_utils.JsonData:
14
- return {"name": "test_point", "x": 1.0, "y": 2.0, "z": 3.0}
14
+ return {"name": "test_point", "points": [{"x": 1.0, "y": 2.0, "z": 3.0}]}
15
15
 
16
16
 
17
17
  def test_create_point(client: FlaskClient, point_data: test_utils.JsonData) -> None:
18
18
  """Test the creation of a point with valid data."""
19
- route: str = "/opengeodeweb_back/create/point"
19
+ route: str = "/opengeodeweb_back/create/point_set"
20
20
 
21
21
  # Test with all required data
22
22
  response = client.post(route, json=point_data)
@@ -36,24 +36,41 @@ def test_create_point(client: FlaskClient, point_data: test_utils.JsonData) -> N
36
36
  assert response_data["geode_object_type"] == "PointSet3D"
37
37
 
38
38
  # Test with missing parameters
39
- test_utils.test_route_wrong_params(client, route, lambda: point_data.copy())
39
+ test_utils.test_route_wrong_params(client, route, lambda: copy.deepcopy(point_data))
40
+
41
+
42
+ def test_create_point_set_multiple(client: FlaskClient) -> None:
43
+ """Test the creation of a point set with multiple points."""
44
+ route: str = "/opengeodeweb_back/create/point_set"
45
+ data = {
46
+ "name": "multiple_points",
47
+ "points": [
48
+ {"x": 1.0, "y": 2.0, "z": 3.0},
49
+ {"x": 4.0, "y": 5.0, "z": 6.0},
50
+ {"x": 7.0, "y": 8.0, "z": 9.0},
51
+ ],
52
+ }
53
+ response = client.post(route, json=data)
54
+ assert response.status_code == 200
55
+
56
+ response_data = response.get_json()
57
+ assert response_data["name"] == data["name"]
58
+ assert response_data["geode_object_type"] == "PointSet3D"
40
59
 
41
60
 
42
61
  def test_create_point_with_invalid_data(client: FlaskClient) -> None:
43
62
  """Test the point creation endpoint with invalid data."""
44
- route: str = "/opengeodeweb_back/create/point"
63
+ route: str = "/opengeodeweb_back/create/point_set"
45
64
 
46
65
  # Test with non-numeric coordinates
47
66
  invalid_data: test_utils.JsonData = {
48
67
  "name": "invalid_point",
49
- "x": "not_a_number",
50
- "y": 2.0,
51
- "z": 3.0,
68
+ "points": [{"x": "not_a_number", "y": 2.0, "z": 3.0}],
52
69
  }
53
70
  response = client.post(route, json=invalid_data)
54
71
  assert response.status_code == 400
55
72
 
56
73
  # Test with missing coordinates
57
- invalid_data = {"name": "invalid_point", "y": 2.0, "z": 3.0}
74
+ invalid_data = {"name": "invalid_point", "points": [{"y": 2.0, "z": 3.0}]}
58
75
  response = client.post(route, json=invalid_data)
59
76
  assert response.status_code == 400
@@ -583,12 +583,10 @@ def test_import_project_route(client: FlaskClient, tmp_path: Path) -> None:
583
583
 
584
584
 
585
585
  def test_save_viewable_workflow_from_object(client: FlaskClient) -> None:
586
- route = "/opengeodeweb_back/create/point"
586
+ route = "/opengeodeweb_back/create/point_set"
587
587
  point_data = {
588
588
  "name": "workflow_point_3d",
589
- "x": 0.0,
590
- "y": 0.0,
591
- "z": 0.0,
589
+ "points": [{"x": 0.0, "y": 0.0, "z": 0.0}],
592
590
  }
593
591
 
594
592
  response = client.post(route, json=point_data)
@@ -1,22 +0,0 @@
1
- {
2
- "route": "/point",
3
- "methods": ["POST"],
4
- "type": "object",
5
- "properties": {
6
- "name": {
7
- "type": "string",
8
- "minLength": 1
9
- },
10
- "x": {
11
- "type": "number"
12
- },
13
- "y": {
14
- "type": "number"
15
- },
16
- "z": {
17
- "type": "number"
18
- }
19
- },
20
- "required": ["name", "x", "y", "z"],
21
- "additionalProperties": false
22
- }