|
12 | 12 |
|
13 | 13 |
|
14 | 14 | @routes.route( |
15 | | - schemas_dict["mesh_components"]["route"], |
16 | | - methods=schemas_dict["mesh_components"]["methods"], |
| 15 | + schemas_dict["model_components"]["route"], |
| 16 | + methods=schemas_dict["model_components"]["methods"], |
17 | 17 | ) |
18 | | -def mesh_components() -> flask.Response: |
| 18 | +def model_components() -> flask.Response: |
19 | 19 | json_data = utils_functions.validate_request( |
20 | | - flask.request, schemas_dict["mesh_components"] |
| 20 | + flask.request, schemas_dict["model_components"] |
21 | 21 | ) |
22 | | - params = schemas.MeshComponents.from_dict(json_data) |
| 22 | + params = schemas.ModelComponents.from_dict(json_data) |
23 | 23 | model = geode_functions.load_geode_object(params.id) |
24 | 24 | if not isinstance(model, GeodeModel): |
25 | 25 | flask.abort(400, f"{params.id} is not a GeodeModel") |
@@ -54,4 +54,24 @@ def mesh_components() -> flask.Response: |
54 | 54 | } |
55 | 55 | mesh_components.append(mesh_component_object) |
56 | 56 |
|
57 | | - return flask.make_response({"mesh_components": mesh_components}, 200) |
| 57 | + model_collection_components = model.collection_components() |
| 58 | + collection_components = [] |
| 59 | + for collection_component, ids in model_collection_components.items(): |
| 60 | + component_type = collection_component.get() |
| 61 | + for id in ids: |
| 62 | + geode_id = id.string() |
| 63 | + collection_component_object = { |
| 64 | + "id": params.id, |
| 65 | + "geode_id": geode_id, |
| 66 | + "name": geode_id, |
| 67 | + "type": component_type, |
| 68 | + } |
| 69 | + collection_components.append(collection_component_object) |
| 70 | + |
| 71 | + return flask.make_response( |
| 72 | + { |
| 73 | + "mesh_components": mesh_components, |
| 74 | + "collection_components": collection_components, |
| 75 | + }, |
| 76 | + 200, |
| 77 | + ) |
0 commit comments